Remove filters factory, introduce docs translation (#978)

* Rewrite filters

* Update README.rst

* Fixed tests

* Small optimization of the Text filter (TY to @bomzheg)

* Remove dataclass slots argument in due to the only Python 3.10 has an slots argument

* Fixed mypy

* Update tests

* Disable Python 3.11

* Fixed #1013: Empty mention should be None instead of empty string.

* Added #990 to the changelog

* Added #942 to the changelog

* Fixed coverage

* Update poetry and dependencies

* Fixed mypy

* Remove deprecated code

* Added more tests, update pyproject.toml

* Partial update docs

* Added initial Docs translation files

* Added more changes

* Added log message when connection is established in polling process

* Fixed action

* Disable lint for PyPy

* Added changelog for docs translation
This commit is contained in:
Alex Root Junior 2022-10-02 00:04:31 +03:00 committed by GitHub
parent 94030903ec
commit f4251382e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
610 changed files with 61738 additions and 1687 deletions

View file

@ -41,6 +41,7 @@ jobs:
- '3.8'
- '3.9'
- '3.10'
#- '3.11'
- 'pypy3.8'
- 'pypy3.9'
@ -77,7 +78,7 @@ jobs:
uses: snok/install-poetry@v1
if: "env.IS_PYPY == 'false' || env.IS_WINDOWS == 'false'"
with:
version: 1.1.11
version: 1.2.1
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
@ -86,7 +87,7 @@ jobs:
if: "env.IS_PYPY == 'true' && env.IS_WINDOWS == 'true'"
run: |
set -eu
pip install "poetry==1.1.11"
pip install "poetry==1.2.1"
poetry config virtualenvs.create true
poetry config virtualenvs.in-project true
poetry config installer.parallel true
@ -109,9 +110,10 @@ jobs:
run: |
flags=""
[[ "$IS_PYPY" == "false" ]] && flags="$flags -E fast"
poetry install --no-interaction -E redis -E proxy -E i18n -E docs $flags
poetry install --no-interaction -E redis -E proxy -E i18n $flags
- name: Lint code
if: "env.IS_PYPY == 'false'"
run: |
poetry run flake8 aiogram
poetry run mypy aiogram

2
.gitignore vendored
View file

@ -4,6 +4,8 @@
__pycache__/
*.py[cod]
*.mo
env/
build/
_build/

View file

@ -1,5 +1,3 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.2.0
@ -15,7 +13,7 @@ repos:
- id: "check-toml"
- repo: https://github.com/psf/black
rev: 22.6.0
rev: 22.8.0
hooks:
- id: black
files: &files '^(aiogram|tests|examples)'
@ -38,3 +36,15 @@ repos:
rev: 0.2.0
hooks:
- id: sync_with_poetry
- repo: https://github.com/python-poetry/poetry
rev: '1.2.1'
hooks:
- id: poetry-check
- id: poetry-lock
- id: poetry-export
args: [ "-f", "requirements.txt", "--without-hashes", "-o", "requirements/base.txt" ]
- id: poetry-export
args: [ "-f", "requirements.txt", "--without-hashes", "-o", "requirements/docs.txt",
"-E", "fast", "-E", "redis", "-E", "proxy", "-E", "i18n",
"--with", "docs" ]

View file

@ -6,10 +6,6 @@ sphinx:
formats: all
python:
version: 3.8
version: "3.8"
install:
- method: pip
path: .
extra_requirements:
- docs
- redis
- requirements: requirements/docs.txt

1
CHANGES/1013.bugfix.rst Normal file
View file

@ -0,0 +1 @@
Fixed empty mention in command parsing, now it will be None instead of an empty string

1
CHANGES/898.misc.rst Normal file
View file

@ -0,0 +1 @@
Reworked error event, introduced :class:`aiogram.types.error_event.ErrorEvent` object.

1
CHANGES/925.docs.rst Normal file
View file

@ -0,0 +1 @@
Initialized Docs translation (added Ukrainian language)

1
CHANGES/942.misc.rst Normal file
View file

@ -0,0 +1 @@
**BREAKING**: Removed filters factory as described in corresponding issue.

1
CHANGES/982.misc.rst Normal file
View file

@ -0,0 +1 @@
Now Router/Dispatcher accepts only keyword arguments.

2
CHANGES/990.misc.rst Normal file
View file

@ -0,0 +1,2 @@
Added warning about using magic filter from `magic_filter` instead of `aiogram`'s ones.
Is recommended to use `from aiogram import F` instead of `from magic_filter import F`

View file

@ -47,7 +47,7 @@ help:
.PHONY: install
install:
poetry install -E fast -E redis -E proxy -E i18n -E docs --remove-untracked
poetry install -E fast -E redis -E proxy -E i18n --sync
$(py) pre-commit install
.PHONY: clean
@ -105,7 +105,7 @@ test-coverage-view:
# Docs
# =================================================================================================
locales := en uk_UA ru
locales := en uk_UA
locale_targets := $(addprefix docs-serve-, $(locales))
docs-gettext:
@ -114,8 +114,8 @@ docs-gettext:
.PHONY: docs-gettext
docs-serve:
rm -rf docs/_build
$(py) sphinx-autobuild --watch aiogram/ docs/ docs/_build/ $(OPTS)
#rm -rf docs/_build
$(py) sphinx-autobuild --watch aiogram/ --watch CHANGELOG.rst --watch README.rst docs/ docs/_build/ $(OPTS)
.PHONY: docs-serve
$(locale_targets): docs-serve-%:
@ -158,3 +158,10 @@ release:
git add .
git commit -m "Release $(shell poetry version -s)"
git tag v$(shell poetry version -s)
_poetry_export_args := --format requirements.txt --without-hashes
.PHONY: export-requirements
export-requirements:
poetry export $(_poetry_export_args) --output requirements/base.txt
poetry export $(_poetry_export_args) --output requirements/docs.txt -E fast -E redis -E proxy -E i18n --with docs

View file

@ -62,14 +62,16 @@ Features
- Asynchronous (`asyncio docs <https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)
- Has type hints (:pep:`484`) and can be used with `mypy <http://mypy-lang.org/>`_
- Supports `PyPy <https://www.pypy.org/>`_
- Supports `Telegram Bot API 5.3 <https://core.telegram.org/bots/api>`_
- Supports `Telegram Bot API 6.3 <https://core.telegram.org/bots/api>`_ and gets fast updates to the latest versions of the Bot API
- Telegram Bot API integration code was `autogenerated <https://github.com/aiogram/tg-codegen>`_ and can be easily re-generated when API gets updated
- Updates router (Blueprints)
- Has Finite State Machine
- Uses powerful :ref:`magic filters <magic-filters>`
- Middlewares (incoming updates and API calls)
- Provides `Replies into Webhook <https://core.telegram.org/bots/faq#how-can-i-make-requests-in-response-to-updates>`_
- Integrated I18n/L10n support with GNU Gettext (or Fluent)
.. warning::
It is strongly advised that you have prior experience working

View file

@ -35,5 +35,5 @@ __all__ = (
"flags",
)
__version__ = "3.0.0b4"
__version__ = "3.0.0b5"
__api_version__ = "6.2"

View file

@ -33,10 +33,12 @@ class Dispatcher(Router):
def __init__(
self,
*, # * - Preventing to pass instance of Bot to the FSM storage
storage: Optional[BaseStorage] = None,
fsm_strategy: FSMStrategy = FSMStrategy.USER_IN_CHAT,
events_isolation: Optional[BaseEventIsolation] = None,
disable_fsm: bool = False,
name: Optional[str] = None,
**kwargs: Any,
) -> None:
"""
@ -49,11 +51,16 @@ class Dispatcher(Router):
then you should not use storage and events isolation
:param kwargs: Other arguments, will be passed as keyword arguments to handlers
"""
super(Dispatcher, self).__init__(**kwargs)
super(Dispatcher, self).__init__(name=name)
if storage and not isinstance(storage, BaseStorage):
raise TypeError(
f"FSM storage should be instance of 'BaseStorage' not {type(storage).__name__}"
)
# Telegram API provides originally only one event type - Update
# For making easily interactions with events here is registered handler which helps
# to separate Update to different event types like Message, CallbackQuery and etc.
# to separate Update to different event types like Message, CallbackQuery etc.
self.update = self.observers["update"] = TelegramEventObserver(
router=self, event_name="update"
)
@ -80,7 +87,7 @@ class Dispatcher(Router):
self.update.outer_middleware(self.fsm)
self.shutdown.register(self.fsm.close)
self.workflow_data: Dict[str, Any] = {}
self.workflow_data: Dict[str, Any] = kwargs
self._running_lock = Lock()
def __getitem__(self, item: str) -> Any:
@ -186,10 +193,12 @@ class Dispatcher(Router):
# Request timeout can be lower than session timeout and that's OK.
# To prevent false-positive TimeoutError we should wait longer than polling timeout
kwargs["request_timeout"] = int(bot.session.timeout + polling_timeout)
failed = False
while True:
try:
updates = await bot(get_updates, **kwargs)
except Exception as e:
failed = True
# In cases when Telegram Bot API was inaccessible don't need to stop polling
# process because some developers can't make auto-restarting of the script
loggers.dispatcher.error("Failed to fetch updates - %s: %s", type(e).__name__, e)
@ -205,7 +214,14 @@ class Dispatcher(Router):
# In case when network connection was fixed let's reset the backoff
# to initial value and then process updates
backoff.reset()
if failed:
loggers.dispatcher.info(
"Connection established (tryings = %d, bot id = %d)",
backoff.counter,
bot.id,
)
backoff.reset()
failed = False
for update in updates:
yield update

View file

@ -1,14 +1,18 @@
import asyncio
import contextvars
import inspect
import warnings
from dataclasses import dataclass, field
from functools import partial
from typing import Any, Callable, Dict, List, Optional, Tuple
from magic_filter import MagicFilter
from magic_filter.magic import MagicFilter as OriginalMagicFilter
from aiogram.dispatcher.flags import extract_flags_from_object
from aiogram.filters.base import Filter
from aiogram.handlers import BaseHandler
from aiogram.utils.magic_filter import MagicFilter
from aiogram.utils.warnings import Recommendation
CallbackType = Callable[..., Any]
@ -45,20 +49,33 @@ class CallableMixin:
@dataclass
class FilterObject(CallableMixin):
callback: CallbackType
magic: Optional[MagicFilter] = None
def __post_init__(self) -> None:
# TODO: Make possibility to extract and explain magic from filter object.
# Current solution is hard for debugging because the MagicFilter instance can't be extracted
if isinstance(self.callback, MagicFilter):
# MagicFilter instance is callable but generates only "CallOperation" instead of applying the filter
if isinstance(self.callback, OriginalMagicFilter):
# MagicFilter instance is callable but generates
# only "CallOperation" instead of applying the filter
self.magic = self.callback
self.callback = self.callback.resolve
super().__post_init__()
if not isinstance(self.magic, MagicFilter):
# Issue: https://github.com/aiogram/aiogram/issues/990
warnings.warn(
category=Recommendation,
message="You are using F provided by magic_filter package directly, "
"but it lacks `.as_()` extension."
"\n Please change the import statement: from `from magic_filter import F` "
"to `from aiogram import F` to silence this warning.",
stacklevel=6,
)
super(FilterObject, self).__post_init__()
if isinstance(self.callback, Filter):
self.awaitable = True
@dataclass
class HandlerObject(CallableMixin):
callback: CallbackType
filters: Optional[List[FilterObject]] = None
flags: Dict[str, Any] = field(default_factory=dict)

View file

@ -1,17 +1,10 @@
from __future__ import annotations
import warnings
from inspect import isclass
from itertools import chain
from typing import TYPE_CHECKING, Any, Callable, Dict, Generator, List, Optional, Tuple, Type
from pydantic import ValidationError
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional
from aiogram.dispatcher.middlewares.manager import MiddlewareManager
from aiogram.filters.base import BaseFilter
from ...exceptions import FiltersResolveError
from ...filters import BUILTIN_FILTERS_SET
from ...filters.base import Filter
from ...types import TelegramObject
from .bases import REJECTED, UNHANDLED, MiddlewareType, SkipHandler
from .handler import CallbackType, FilterObject, HandlerObject
@ -33,7 +26,6 @@ class TelegramEventObserver:
self.event_name: str = event_name
self.handlers: List[HandlerObject] = []
self.filters: List[Type[BaseFilter]] = []
self.middleware = MiddlewareManager()
self.outer_middleware = MiddlewareManager()
@ -42,63 +34,16 @@ class TelegramEventObserver:
# with dummy callback which never will be used
self._handler = HandlerObject(callback=lambda: True, filters=[])
def filter(self, *filters: CallbackType, _stacklevel: int = 2, **bound_filters: Any) -> None:
def filter(self, *filters: CallbackType) -> None:
"""
Register filter for all handlers of this event observer
:param filters: positional filters
:param bound_filters: keyword filters
"""
resolved_filters = self.resolve_filters(
filters, bound_filters, _stacklevel=_stacklevel + 1
)
if self._handler.filters is None:
self._handler.filters = []
self._handler.filters.extend(
[
FilterObject(filter_) # type: ignore
for filter_ in chain(
resolved_filters,
filters,
)
]
)
def bind_filter(self, bound_filter: Type[BaseFilter]) -> None:
"""
Register filter class in factory
:param bound_filter:
"""
if not isclass(bound_filter) or not issubclass(bound_filter, BaseFilter):
raise TypeError(
"bound_filter() argument 'bound_filter' must be subclass of BaseFilter"
)
if bound_filter not in BUILTIN_FILTERS_SET:
warnings.warn(
category=DeprecationWarning,
message="filters factory deprecated and will be removed in 3.0b5,"
" use filters directly instead (Example: "
f"`{bound_filter.__name__}(<argument>=<value>)` instead of `<argument>=<value>`)",
stacklevel=2,
)
self.filters.append(bound_filter)
def _resolve_filters_chain(self) -> Generator[Type[BaseFilter], None, None]:
"""
Get all bounded filters from current observer and from the parents
with the same event type without duplicates
"""
registry: List[Type[BaseFilter]] = []
for router in reversed(tuple(self.router.chain_head)):
observer = router.observers[self.event_name]
for filter_ in observer.filters:
if filter_ in registry:
continue
yield filter_
registry.append(filter_)
self._handler.filters.extend([FilterObject(filter_) for filter_ in filters])
def _resolve_middlewares(self) -> List[MiddlewareType[TelegramObject]]:
middlewares: List[MiddlewareType[TelegramObject]] = []
@ -108,112 +53,30 @@ class TelegramEventObserver:
return middlewares
def resolve_filters(
self,
filters: Tuple[CallbackType, ...],
full_config: Dict[str, Any],
ignore_default: bool = True,
_stacklevel: int = 2,
) -> List[BaseFilter]:
"""
Resolve keyword filters via filters factory
:param filters: positional filters
:param full_config: keyword arguments to initialize bounded filters for router/handler
:param ignore_default: ignore to resolving filters with only default arguments that are not in full_config
"""
bound_filters: List[BaseFilter] = []
if ignore_default and not full_config:
return bound_filters
filter_types = set(type(f) for f in filters)
validation_errors = []
for bound_filter in self._resolve_filters_chain():
# skip filter if filter was used as positional filter:
if bound_filter in filter_types:
continue
# skip filter with no fields in full_config
if ignore_default:
full_config_keys = set(full_config.keys())
filter_fields = set(bound_filter.__fields__.keys())
if not full_config_keys.intersection(filter_fields):
continue
# Try to initialize filter.
try:
f = bound_filter(**full_config)
except ValidationError as e:
validation_errors.append(e)
continue
# Clean full config to prevent to re-initialize another filter
# with the same configuration
for key in f.__fields__:
full_config.pop(key, None)
bound_filters.append(f)
if full_config:
possible_cases = []
for error in validation_errors:
for sum_error in error.errors():
if sum_error["loc"][0] in full_config:
possible_cases.append(error)
break
raise FiltersResolveError(
unresolved_fields=set(full_config.keys()), possible_cases=possible_cases
)
if bound_filters:
warnings.warn(
category=DeprecationWarning,
message="Filters factory deprecated and will be removed in 3.0b5.\n"
"Use filters directly, for example instead of "
"`@router.message(commands=['help']')` "
"use `@router.message(Command(commands=['help'])`",
stacklevel=_stacklevel,
)
return bound_filters
def register(
self,
callback: CallbackType,
*filters: CallbackType,
flags: Optional[Dict[str, Any]] = None,
_stacklevel: int = 2,
**bound_filters: Any,
) -> CallbackType:
"""
Register event handler
"""
if flags is None:
flags = {}
resolved_filters = self.resolve_filters(
filters,
bound_filters,
ignore_default=False,
_stacklevel=_stacklevel + 1,
)
for resolved_filter in resolved_filters:
resolved_filter.update_handler_flags(flags=flags)
for item in filters:
if isinstance(item, Filter):
item.update_handler_flags(flags=flags)
self.handlers.append(
HandlerObject(
callback=callback,
filters=[
FilterObject(filter_) # type: ignore
for filter_ in chain(
resolved_filters,
filters,
)
],
filters=[FilterObject(filter_) for filter_ in filters],
flags=flags,
)
)
return callback
def wrap_outer_middleware(
@ -253,19 +116,15 @@ class TelegramEventObserver:
def __call__(
self,
*args: CallbackType,
*filters: CallbackType,
flags: Optional[Dict[str, Any]] = None,
_stacklevel: int = 2,
**bound_filters: Any,
) -> Callable[[CallbackType], CallbackType]:
"""
Decorator for registering event handlers
"""
def wrapper(callback: CallbackType) -> CallbackType:
self.register(
callback, *args, flags=flags, **bound_filters, _stacklevel=_stacklevel + 1
)
self.register(callback, *filters, flags=flags)
return callback
return wrapper

View file

@ -1,8 +1,9 @@
from __future__ import annotations
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Dict
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Dict, cast
from ...types import TelegramObject
from ...types import TelegramObject, Update
from ...types.error_event import ErrorEvent
from ..event.bases import UNHANDLED, CancelHandler, SkipHandler
from .base import BaseMiddleware
@ -26,7 +27,9 @@ class ErrorsMiddleware(BaseMiddleware):
raise
except Exception as e:
response = await self.router.propagate_event(
update_type="error", event=event, **data, exception=e
update_type="error",
event=ErrorEvent(update=cast(Update, event), exception=e),
**data,
)
if response is not UNHANDLED:
return response

View file

@ -1,12 +1,8 @@
from __future__ import annotations
import warnings
from typing import Any, Dict, Final, Generator, List, Optional, Set, Union
from aiogram.filters import BUILTIN_FILTERS
from ..types import TelegramObject
from ..utils.warnings import CodeHasNoEffect
from .event.bases import REJECTED, UNHANDLED
from .event.event import EventObserver
from .event.telegram import TelegramEventObserver
@ -25,14 +21,11 @@ class Router:
- By decorator - :obj:`@router.<event_type>(<filters, ...>)`
"""
def __init__(self, use_builtin_filters: bool = True, name: Optional[str] = None) -> None:
def __init__(self, *, name: Optional[str] = None) -> None:
"""
:param use_builtin_filters: `aiogram` has many builtin filters and you can controll automatic registration of this filters in factory
:param name: Optional router name, can be useful for debugging
"""
self.use_builtin_filters = use_builtin_filters
self.name = name or hex(id(self))
self._parent_router: Optional[Router] = None
@ -83,12 +76,6 @@ class Router:
"error": self.errors,
}
# Builtin filters
if use_builtin_filters:
for name, observer in self.observers.items():
for builtin_filter in BUILTIN_FILTERS.get(name, ()):
observer.bind_filter(builtin_filter)
def __str__(self) -> str:
return f"{type(self).__name__} {self.name!r}"
@ -187,15 +174,6 @@ class Router:
if parent == self:
raise RuntimeError("Circular referencing of Router is not allowed")
if not self.use_builtin_filters and parent.use_builtin_filters:
warnings.warn(
f"{type(self).__name__}(use_builtin_filters=False) has no effect"
f" for router {self} in due to builtin filters is already registered"
f" in parent router",
CodeHasNoEffect,
stacklevel=3,
)
parent = parent.parent_router
self._parent_router = router

View file

@ -1,7 +1,4 @@
from textwrap import indent
from typing import List, Optional, Set
from pydantic import ValidationError
from typing import Optional
from aiogram.methods import TelegramMethod
from aiogram.methods.base import TelegramType
@ -107,17 +104,3 @@ class RestartingTelegram(TelegramServerError):
class TelegramEntityTooLarge(TelegramNetworkError):
url = "https://core.telegram.org/bots/api#sending-files"
class FiltersResolveError(DetailedAiogramError):
def __init__(self, unresolved_fields: Set[str], possible_cases: List[ValidationError]) -> None:
possible_cases_str = "\n".join(
" - " + indent(str(e), " " * 4).lstrip() for e in possible_cases
)
message = f"Unknown keyword filters: {unresolved_fields}"
if possible_cases_str:
message += f"\n Possible cases:\n{possible_cases_str}"
super().__init__(message=message)
self.unresolved_fields = unresolved_fields
self.possible_cases = possible_cases

View file

@ -1,7 +1,6 @@
from itertools import chain
from typing import Dict, Tuple, Type
from .base import BaseFilter
from .base import Filter
from .chat_member_updated import (
ADMINISTRATOR,
CREATOR,
@ -18,21 +17,21 @@ from .chat_member_updated import (
ChatMemberUpdatedFilter,
)
from .command import Command, CommandObject, CommandStart
from .content_types import ContentTypesFilter
from .exception import ExceptionMessageFilter, ExceptionTypeFilter
from .logic import and_f, invert_f, or_f
from .magic_data import MagicData
from .state import StateFilter
from .text import Text
BaseFilter = Filter
__all__ = (
"BUILTIN_FILTERS",
"Filter",
"BaseFilter",
"Text",
"Command",
"CommandObject",
"CommandStart",
"ContentTypesFilter",
"ExceptionMessageFilter",
"ExceptionTypeFilter",
"StateFilter",
@ -50,90 +49,6 @@ __all__ = (
"IS_NOT_MEMBER",
"JOIN_TRANSITION",
"LEAVE_TRANSITION",
"and_f",
"or_f",
"invert_f",
)
_ALL_EVENTS_FILTERS: Tuple[Type[BaseFilter], ...] = (MagicData,)
_TELEGRAM_EVENTS_FILTERS: Tuple[Type[BaseFilter], ...] = (StateFilter,)
BUILTIN_FILTERS: Dict[str, Tuple[Type[BaseFilter], ...]] = {
"message": (
Text,
Command,
ContentTypesFilter,
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"edited_message": (
Text,
Command,
ContentTypesFilter,
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"channel_post": (
Text,
ContentTypesFilter,
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"edited_channel_post": (
Text,
ContentTypesFilter,
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"inline_query": (
Text,
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"chosen_inline_result": (
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"callback_query": (
Text,
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"shipping_query": (
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"pre_checkout_query": (
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"poll": (
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"poll_answer": (
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"my_chat_member": (
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
ChatMemberUpdatedFilter,
),
"chat_member": (
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
ChatMemberUpdatedFilter,
),
"chat_join_request": (
*_ALL_EVENTS_FILTERS,
*_TELEGRAM_EVENTS_FILTERS,
),
"error": (
ExceptionMessageFilter,
ExceptionTypeFilter,
*_ALL_EVENTS_FILTERS,
),
}
BUILTIN_FILTERS_SET = set(chain.from_iterable(BUILTIN_FILTERS.values()))
BUILTIN_FILTERS: Dict[str, Tuple[Type[Filter], ...]] = {}

View file

@ -1,19 +1,15 @@
from abc import ABC, abstractmethod
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Dict, Union
from pydantic import BaseModel
from aiogram.filters.logic import _LogicFilter
if TYPE_CHECKING:
from aiogram.dispatcher.event.handler import CallbackType, FilterObject
class BaseFilter(BaseModel, ABC, _LogicFilter):
class Filter(ABC):
"""
If you want to register own filters like builtin filters you will need to write subclass
of this class with overriding the :code:`__call__`
method and adding filter attributes.
BaseFilter is subclass of :class:`pydantic.BaseModel` that's mean all subclasses of BaseFilter has
the validators based on class attributes and custom validator.
"""
if TYPE_CHECKING:
@ -34,9 +30,42 @@ class BaseFilter(BaseModel, ABC, _LogicFilter):
"""
pass
def __invert__(self) -> "_InvertFilter":
return invert_f(self)
def update_handler_flags(self, flags: Dict[str, Any]) -> None:
"""
Also if you want to extend handler flags with using this filter you should implement this method
:param flags: existing flags, can be updated directly
"""
pass
def _signature_to_string(self, *args: Any, **kwargs: Any) -> str:
items = [repr(arg) for arg in args]
items.extend([f"{k}={v!r}" for k, v in kwargs.items() if v is not None])
return f"{type(self).__name__}({', '.join(items)})"
def __await__(self): # type: ignore # pragma: no cover
# Is needed only for inspection and this method is never be called
return self.__call__
class _InvertFilter(Filter):
__slots__ = ("target",)
def __init__(self, target: "FilterObject") -> None:
self.target = target
async def __call__(self, *args: Any, **kwargs: Any) -> Union[bool, Dict[str, Any]]:
return not bool(await self.target.call(*args, **kwargs))
def __str__(self) -> str:
return f"~{self.target.callback}"
def invert_f(target: "CallbackType") -> _InvertFilter:
from aiogram.dispatcher.event.handler import FilterObject
return _InvertFilter(target=FilterObject(target))

View file

@ -9,7 +9,7 @@ from uuid import UUID
from magic_filter import MagicFilter
from pydantic import BaseModel
from aiogram.filters import BaseFilter
from aiogram.filters.base import Filter
from aiogram.types import CallbackQuery
T = TypeVar("T", bound="CallbackData")
@ -122,11 +122,8 @@ class CallbackData(BaseModel):
"""
return CallbackQueryFilter(callback_data=cls, rule=rule)
# class Config:
# use_enum_values = True
class CallbackQueryFilter(BaseFilter):
class CallbackQueryFilter(Filter):
"""
This filter helps to handle callback query.
@ -134,10 +131,24 @@ class CallbackQueryFilter(BaseFilter):
via callback data instance
"""
callback_data: Type[CallbackData]
"""Expected type of callback data"""
rule: Optional[MagicFilter] = None
"""Magic rule"""
def __init__(
self,
*,
callback_data: Type[CallbackData],
rule: Optional[MagicFilter] = None,
):
"""
:param callback_data: Expected type of callback data
:param rule: Magic rule
"""
self.callback_data = callback_data
self.rule = rule
def __str__(self) -> str:
return self._signature_to_string(
callback_data=self.callback_data,
rule=self.rule,
)
async def __call__(self, query: CallbackQuery) -> Union[Literal[False], Dict[str, Any]]:
if not isinstance(query, CallbackQuery) or not query.data:
@ -150,7 +161,3 @@ class CallbackQueryFilter(BaseFilter):
if self.rule is None or self.rule.resolve(callback_data):
return {"callback_data": callback_data}
return False
class Config:
arbitrary_types_allowed = True
use_enum_values = True

View file

@ -1,6 +1,6 @@
from typing import Any, Dict, Optional, TypeVar, Union
from aiogram.filters import BaseFilter
from aiogram.filters.base import Filter
from aiogram.types import ChatMember, ChatMemberUpdated
MarkerT = TypeVar("MarkerT", bound="_MemberStatusMarker")
@ -154,16 +154,21 @@ LEAVE_TRANSITION = ~JOIN_TRANSITION
PROMOTED_TRANSITION = (MEMBER | RESTRICTED | LEFT | KICKED) >> ADMINISTRATOR
class ChatMemberUpdatedFilter(BaseFilter):
member_status_changed: Union[
_MemberStatusMarker,
_MemberStatusGroupMarker,
_MemberStatusTransition,
]
"""Accepts the status transition or new status of the member (see usage in docs)"""
class ChatMemberUpdatedFilter(Filter):
def __init__(
self,
member_status_changed: Union[
_MemberStatusMarker,
_MemberStatusGroupMarker,
_MemberStatusTransition,
],
):
self.member_status_changed = member_status_changed
class Config:
arbitrary_types_allowed = True
def __str__(self) -> str:
return self._signature_to_string(
member_status_changed=self.member_status_changed,
)
async def __call__(self, member_updated: ChatMemberUpdated) -> Union[bool, Dict[str, Any]]:
old = member_updated.old_chat_member

View file

@ -2,57 +2,111 @@ from __future__ import annotations
import re
from dataclasses import dataclass, field, replace
from typing import TYPE_CHECKING, Any, Dict, Match, Optional, Pattern, Sequence, Tuple, Union, cast
from typing import (
TYPE_CHECKING,
Any,
Dict,
Iterable,
Match,
Optional,
Pattern,
Sequence,
Union,
cast,
)
from magic_filter import MagicFilter
from pydantic import Field, validator
from aiogram.filters import BaseFilter
from aiogram.types import Message
from aiogram.filters.base import Filter
from aiogram.types import BotCommand, Message
from aiogram.utils.deep_linking import decode_payload
if TYPE_CHECKING:
from aiogram import Bot
CommandPatternType = Union[str, re.Pattern]
CommandPatternType = Union[str, re.Pattern, BotCommand]
class CommandException(Exception):
pass
class Command(BaseFilter):
class Command(Filter):
"""
This filter can be helpful for handling commands from the text messages.
Works only with :class:`aiogram.types.message.Message` events which have the :code:`text`.
"""
commands: Union[Sequence[CommandPatternType], CommandPatternType]
"""List of commands (string or compiled regexp patterns)"""
commands_prefix: str = "/"
"""Prefix for command. Prefix is always is single char but here you can pass all of allowed prefixes,
for example: :code:`"/!"` will work with commands prefixed by :code:`"/"` or :code:`"!"`."""
commands_ignore_case: bool = False
"""Ignore case (Does not work with regexp, use flags instead)"""
commands_ignore_mention: bool = False
"""Ignore bot mention. By default bot can not handle commands intended for other bots"""
command_magic: Optional[MagicFilter] = None
"""Validate command object via Magic filter after all checks done"""
def __init__(
self,
*values: CommandPatternType,
commands: Optional[Union[Sequence[CommandPatternType], CommandPatternType]] = None,
prefix: str = "/",
ignore_case: bool = False,
ignore_mention: bool = False,
magic: Optional[MagicFilter] = None,
):
"""
List of commands (string or compiled regexp patterns)
:param prefix: Prefix for command.
Prefix is always a single char but here you can pass all of allowed prefixes,
for example: :code:`"/!"` will work with commands prefixed
by :code:`"/"` or :code:`"!"`.
:param ignore_case: Ignore case (Does not work with regexp, use flags instead)
:param ignore_mention: Ignore bot mention. By default,
bot can not handle commands intended for other bots
:param magic: Validate command object via Magic filter after all checks done
"""
if commands is None:
commands = []
if isinstance(commands, (str, re.Pattern, BotCommand)):
commands = [commands]
if not isinstance(commands, Iterable):
raise ValueError(
"Command filter only supports str, re.Pattern, BotCommand object"
" or their Iterable"
)
items = []
for command in (*values, *commands):
if isinstance(command, BotCommand):
command = command.command
if not isinstance(command, (str, re.Pattern)):
raise ValueError(
"Command filter only supports str, re.Pattern, BotCommand object"
" or their Iterable"
)
items.append(command)
if not items:
raise ValueError("At least one command should be specified")
self.commands = tuple(items)
self.prefix = prefix
self.ignore_case = ignore_case
self.ignore_mention = ignore_mention
self.magic = magic
def __str__(self) -> str:
return self._signature_to_string(
*self.commands,
prefix=self.prefix,
ignore_case=self.ignore_case,
ignore_mention=self.ignore_mention,
magic=self.magic,
)
def update_handler_flags(self, flags: Dict[str, Any]) -> None:
commands = flags.setdefault("commands", [])
commands.append(self)
@validator("commands", always=True)
def _validate_commands(
cls, value: Union[Sequence[CommandPatternType], CommandPatternType]
) -> Sequence[CommandPatternType]:
if isinstance(value, (str, re.Pattern)):
value = [value]
return value
async def __call__(self, message: Message, bot: Bot) -> Union[bool, Dict[str, Any]]:
if not isinstance(message, Message):
return False
text = message.text or message.caption
if not text:
return False
@ -78,15 +132,18 @@ class Command(BaseFilter):
# "/command@mention" -> "/", ("command", "@", "mention")
prefix, (command, _, mention) = full_command[0], full_command[1:].partition("@")
return CommandObject(
prefix=prefix, command=command, mention=mention, args=args[0] if args else None
prefix=prefix,
command=command,
mention=mention or None,
args=args[0] if args else None,
)
def validate_prefix(self, command: CommandObject) -> None:
if command.prefix not in self.commands_prefix:
if command.prefix not in self.prefix:
raise CommandException("Invalid command prefix")
async def validate_mention(self, bot: Bot, command: CommandObject) -> None:
if command.mention and not self.commands_ignore_mention:
if command.mention and not self.ignore_mention:
me = await bot.me()
if me.username and command.mention.lower() != me.username.lower():
raise CommandException("Mention did not match")
@ -119,16 +176,13 @@ class Command(BaseFilter):
return command
def do_magic(self, command: CommandObject) -> Any:
if not self.command_magic:
if not self.magic:
return command
result = self.command_magic.resolve(command)
result = self.magic.resolve(command)
if not result:
raise CommandException("Rejected via magic filter")
return replace(command, magic_result=result)
class Config:
arbitrary_types_allowed = True
@dataclass(frozen=True)
class CommandObject:
@ -170,10 +224,32 @@ class CommandObject:
class CommandStart(Command):
commands: Tuple[str] = Field(("start",), const=True)
commands_prefix: str = Field("/", const=True)
deep_link: bool = False
deep_link_encoded: bool = False
def __init__(
self,
deep_link: bool = False,
deep_link_encoded: bool = False,
ignore_case: bool = False,
ignore_mention: bool = False,
magic: Optional[MagicFilter] = None,
):
super().__init__(
"start",
prefix="/",
ignore_case=ignore_case,
ignore_mention=ignore_mention,
magic=magic,
)
self.deep_link = deep_link
self.deep_link_encoded = deep_link_encoded
def __str__(self) -> str:
return self._signature_to_string(
ignore_case=self.ignore_case,
ignore_mention=self.ignore_mention,
magic=self.magic,
deep_link=self.deep_link,
deep_link_encoded=self.deep_link_encoded,
)
async def parse_command(self, text: str, bot: Bot) -> CommandObject:
"""

View file

@ -1,34 +0,0 @@
from typing import Any, Dict, Optional, Sequence, Union
from pydantic import validator
from aiogram.types import Message
from aiogram.types.message import ContentType
from .base import BaseFilter
class ContentTypesFilter(BaseFilter):
"""
Is useful for handling specific types of messages (For example separate text and stickers handlers).
"""
content_types: Union[Sequence[str], str]
"""Sequence of allowed content types"""
@validator("content_types")
def _validate_content_types(
cls, value: Optional[Union[Sequence[str], str]]
) -> Optional[Sequence[str]]:
if not value:
return value
if isinstance(value, str):
value = [value]
allowed_content_types = set(ContentType.all())
bad_content_types = set(value) - allowed_content_types
if bad_content_types:
raise ValueError(f"Invalid content types {bad_content_types} is not allowed here")
return value
async def __call__(self, message: Message) -> Union[bool, Dict[str, Any]]:
return ContentType.ANY in self.content_types or message.content_type in self.content_types

View file

@ -1,51 +1,51 @@
import re
from typing import Any, Dict, Pattern, Tuple, Type, Union, cast
from typing import Any, Dict, Pattern, Type, Union, cast
from pydantic import validator
from aiogram.filters import BaseFilter
from aiogram.filters.base import Filter
from aiogram.types import TelegramObject
from aiogram.types.error_event import ErrorEvent
class ExceptionTypeFilter(BaseFilter):
class ExceptionTypeFilter(Filter):
"""
Allows to match exception by type
"""
exception: Union[Type[Exception], Tuple[Type[Exception]]]
"""Exception type(s)"""
def __init__(self, *exceptions: Type[Exception]):
"""
:param exceptions: Exception type(s)
"""
if not exceptions:
raise ValueError("At least one exception type is required")
self.exceptions = exceptions
class Config:
arbitrary_types_allowed = True
async def __call__(
self, obj: TelegramObject, exception: Exception
) -> Union[bool, Dict[str, Any]]:
return isinstance(exception, self.exception)
async def __call__(self, obj: TelegramObject) -> Union[bool, Dict[str, Any]]:
return isinstance(cast(ErrorEvent, obj).exception, self.exceptions)
class ExceptionMessageFilter(BaseFilter):
class ExceptionMessageFilter(Filter):
"""
Allow to match exception by message
"""
pattern: Union[str, Pattern[str]]
"""Regexp pattern"""
def __init__(self, pattern: Union[str, Pattern[str]]):
"""
:param pattern: Regexp pattern
"""
if isinstance(pattern, str):
pattern = re.compile(pattern)
self.pattern = pattern
class Config:
arbitrary_types_allowed = True
@validator("pattern")
def _validate_match(cls, value: Union[str, Pattern[str]]) -> Union[str, Pattern[str]]:
if isinstance(value, str):
return re.compile(value)
return value
def __str__(self) -> str:
return self._signature_to_string(
pattern=self.pattern,
)
async def __call__(
self, obj: TelegramObject, exception: Exception
self,
obj: TelegramObject,
) -> Union[bool, Dict[str, Any]]:
pattern = cast(Pattern[str], self.pattern)
result = pattern.match(str(exception))
result = self.pattern.match(str(cast(ErrorEvent, obj).exception))
if not result:
return False
return {"match_exception": result}

View file

@ -1,87 +0,0 @@
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Dict, Union
if TYPE_CHECKING:
from aiogram.dispatcher.event.handler import CallbackType, FilterObject
class _LogicFilter:
__call__: Callable[..., Awaitable[Union[bool, Dict[str, Any]]]]
def __and__(self, other: "CallbackType") -> "_AndFilter":
return and_f(self, other)
def __or__(self, other: "CallbackType") -> "_OrFilter":
return or_f(self, other)
def __invert__(self) -> "_InvertFilter":
return invert_f(self)
def __await__(self): # type: ignore # pragma: no cover
# Is needed only for inspection and this method is never be called
return self.__call__
class _InvertFilter(_LogicFilter):
__slots__ = ("target",)
def __init__(self, target: "FilterObject") -> None:
self.target = target
async def __call__(self, *args: Any, **kwargs: Any) -> Union[bool, Dict[str, Any]]:
return not bool(await self.target.call(*args, **kwargs))
class _AndFilter(_LogicFilter):
__slots__ = ("targets",)
def __init__(self, *targets: "FilterObject") -> None:
self.targets = targets
async def __call__(self, *args: Any, **kwargs: Any) -> Union[bool, Dict[str, Any]]:
final_result = {}
for target in self.targets:
result = await target.call(*args, **kwargs)
if not result:
return False
if isinstance(result, dict):
final_result.update(result)
if final_result:
return final_result
return True
class _OrFilter(_LogicFilter):
__slots__ = ("targets",)
def __init__(self, *targets: "FilterObject") -> None:
self.targets = targets
async def __call__(self, *args: Any, **kwargs: Any) -> Union[bool, Dict[str, Any]]:
for target in self.targets:
result = await target.call(*args, **kwargs)
if not result:
continue
if isinstance(result, dict):
return result
return bool(result)
return False
def and_f(target1: "CallbackType", target2: "CallbackType") -> _AndFilter:
from aiogram.dispatcher.event.handler import FilterObject
return _AndFilter(FilterObject(target1), FilterObject(target2))
def or_f(target1: "CallbackType", target2: "CallbackType") -> _OrFilter:
from aiogram.dispatcher.event.handler import FilterObject
return _OrFilter(FilterObject(target1), FilterObject(target2))
def invert_f(target: "CallbackType") -> _InvertFilter:
from aiogram.dispatcher.event.handler import FilterObject
return _InvertFilter(FilterObject(target))

View file

@ -2,17 +2,20 @@ from typing import Any
from magic_filter import AttrDict, MagicFilter
from aiogram.filters import BaseFilter
from aiogram.filters.base import Filter
from aiogram.types import TelegramObject
class MagicData(BaseFilter):
magic_data: MagicFilter
class Config:
arbitrary_types_allowed = True
class MagicData(Filter):
def __init__(self, magic_data: MagicFilter) -> None:
self.magic_data = magic_data
async def __call__(self, event: TelegramObject, *args: Any, **kwargs: Any) -> Any:
return self.magic_data.resolve(
AttrDict({"event": event, **{k: v for k, v in enumerate(args)}, **kwargs})
)
def __str__(self) -> str:
return self._signature_to_string(
magic_data=self.magic_data,
)

View file

@ -1,40 +1,33 @@
from inspect import isclass
from typing import Any, Dict, Optional, Sequence, Type, Union, cast, no_type_check
from typing import Any, Dict, Optional, Sequence, Type, Union, cast
from pydantic import Field, validator
from aiogram.filters import BaseFilter
from aiogram.filters.base import Filter
from aiogram.fsm.state import State, StatesGroup
from aiogram.types import TelegramObject
StateType = Union[str, None, State, StatesGroup, Type[StatesGroup]]
class StateFilter(BaseFilter):
class StateFilter(Filter):
"""
State filter
"""
state: Union[StateType, Sequence[StateType]] = Field(...)
def __init__(self, *states: StateType) -> None:
if not states:
raise ValueError("At least one state is required")
class Config:
arbitrary_types_allowed = True
self.states = states
@validator("state")
@no_type_check # issubclass breaks things
def _validate_state(cls, v: Union[StateType, Sequence[StateType]]) -> Sequence[StateType]:
if (
isinstance(v, (str, State, StatesGroup))
or (isclass(v) and issubclass(v, StatesGroup))
or v is None
):
return [v]
return v
def __str__(self) -> str:
return self._signature_to_string(
*self.states,
)
async def __call__(
self, obj: Union[TelegramObject], raw_state: Optional[str] = None
) -> Union[bool, Dict[str, Any]]:
allowed_states = cast(Sequence[StateType], self.state)
allowed_states = cast(Sequence[StateType], self.states)
for allowed_state in allowed_states:
if isinstance(allowed_state, str) or allowed_state is None:
if allowed_state == "*" or raw_state == allowed_state:

View file

@ -1,8 +1,6 @@
from typing import TYPE_CHECKING, Any, Dict, Optional, Sequence, Union
from pydantic import root_validator
from aiogram.filters import BaseFilter
from aiogram.filters.base import Filter
from aiogram.types import CallbackQuery, InlineQuery, Message, Poll
if TYPE_CHECKING:
@ -11,7 +9,7 @@ if TYPE_CHECKING:
TextType = Union[str, "LazyProxy"]
class Text(BaseFilter):
class Text(Filter):
"""
Is useful for filtering text :class:`aiogram.types.message.Message`,
any :class:`aiogram.types.callback_query.CallbackQuery` with `data`,
@ -19,7 +17,7 @@ class Text(BaseFilter):
.. warning::
Only one of `text`, `text_contains`, `text_startswith` or `text_endswith` argument can be used at once.
Only one of `text`, `contains`, `startswith` or `endswith` argument can be used at once.
Any of that arguments can be string, list, set or tuple of strings.
.. deprecated:: 3.0
@ -27,40 +25,63 @@ class Text(BaseFilter):
use :ref:`magic-filter <magic-filters>`. For example do :pycode:`F.text == "text"` instead
"""
text: Optional[Union[Sequence[TextType], TextType]] = None
"""Text equals value or one of values"""
text_contains: Optional[Union[Sequence[TextType], TextType]] = None
"""Text contains value or one of values"""
text_startswith: Optional[Union[Sequence[TextType], TextType]] = None
"""Text starts with value or one of values"""
text_endswith: Optional[Union[Sequence[TextType], TextType]] = None
"""Text ends with value or one of values"""
text_ignore_case: bool = False
"""Ignore case when checks"""
def __init__(
self,
text: Optional[Union[Sequence[TextType], TextType]] = None,
*,
contains: Optional[Union[Sequence[TextType], TextType]] = None,
startswith: Optional[Union[Sequence[TextType], TextType]] = None,
endswith: Optional[Union[Sequence[TextType], TextType]] = None,
ignore_case: bool = False,
):
"""
class Config:
arbitrary_types_allowed = True
@root_validator
def _validate_constraints(cls, values: Dict[str, Any]) -> Dict[str, Any]:
# Validate that only one text filter type is presented
used_args = set(
key for key, value in values.items() if key != "text_ignore_case" and value is not None
:param text: Text equals value or one of values
:param contains: Text contains value or one of values
:param startswith: Text starts with value or one of values
:param endswith: Text ends with value or one of values
:param ignore_case: Ignore case when checks
"""
self._validate_constraints(
text=text,
contains=contains,
startswith=startswith,
endswith=endswith,
)
self.text = self._prepare_argument(text)
self.contains = self._prepare_argument(contains)
self.startswith = self._prepare_argument(startswith)
self.endswith = self._prepare_argument(endswith)
self.ignore_case = ignore_case
def __str__(self) -> str:
return self._signature_to_string(
text=self.text,
contains=self.contains,
startswith=self.startswith,
endswith=self.endswith,
ignore_case=self.ignore_case,
)
@classmethod
def _prepare_argument(
cls, value: Optional[Union[Sequence[TextType], TextType]]
) -> Optional[Sequence[TextType]]:
from aiogram.utils.i18n.lazy_proxy import LazyProxy
if isinstance(value, (str, LazyProxy)):
return [value]
return value
@classmethod
def _validate_constraints(cls, **values: Any) -> None:
# Validate that only one text filter type is presented
used_args = set(key for key, value in values.items() if value is not None)
if len(used_args) < 1:
raise ValueError(
"Filter should contain one of arguments: {'text', 'text_contains', 'text_startswith', 'text_endswith'}"
)
raise ValueError(f"Filter should contain one of arguments: {set(values.keys())}")
if len(used_args) > 1:
raise ValueError(f"Arguments {used_args} cannot be used together")
# Convert single value to list
for arg in used_args:
if isinstance(values[arg], str):
values[arg] = [values[arg]]
return values
async def __call__(
self, obj: Union[Message, CallbackQuery, InlineQuery, Poll]
) -> Union[bool, Dict[str, Any]]:
@ -79,30 +100,30 @@ class Text(BaseFilter):
if not text:
return False
if self.text_ignore_case:
if self.ignore_case:
text = text.lower()
if self.text is not None:
equals = list(map(self.prepare_text, self.text))
equals = map(self.prepare_text, self.text)
return text in equals
if self.text_contains is not None:
contains = list(map(self.prepare_text, self.text_contains))
if self.contains is not None:
contains = map(self.prepare_text, self.contains)
return all(map(text.__contains__, contains))
if self.text_startswith is not None:
startswith = list(map(self.prepare_text, self.text_startswith))
if self.startswith is not None:
startswith = map(self.prepare_text, self.startswith)
return any(map(text.startswith, startswith))
if self.text_endswith is not None:
endswith = list(map(self.prepare_text, self.text_endswith))
if self.endswith is not None:
endswith = map(self.prepare_text, self.endswith)
return any(map(text.endswith, endswith))
# Impossible because the validator prevents this situation
return False # pragma: no cover
def prepare_text(self, text: str) -> str:
if self.text_ignore_case:
if self.ignore_case:
return str(text).lower()
else:
return str(text)

View file

@ -0,0 +1,16 @@
from aiogram.types import Update
from aiogram.types.base import MutableTelegramObject
class ErrorEvent(MutableTelegramObject):
"""
Internal event, should be used to receive errors while processing Updates from Telegram
"""
update: Update
"""Received update"""
exception: Exception
"""Exception"""
class Config:
arbitrary_types_allowed = True

View file

@ -67,7 +67,7 @@ class BufferedInputFile(InputFile):
:param path: Path to file
:param filename: Filename to be propagated to telegram.
By default will be parsed from path
By default, will be parsed from path
:param chunk_size: Uploading chunk size
:return: instance of :obj:`BufferedInputFile`
"""
@ -95,7 +95,7 @@ class FSInputFile(InputFile):
:param path: Path to file
:param filename: Filename to be propagated to telegram.
By default will be parsed from path
By default, will be parsed from path
:param chunk_size: Uploading chunk size
"""
if filename is None:
@ -106,10 +106,8 @@ class FSInputFile(InputFile):
async def read(self, chunk_size: int) -> AsyncGenerator[bytes, None]:
async with aiofiles.open(self.path, "rb") as f:
chunk = await f.read(chunk_size)
while chunk:
while chunk := await f.read(chunk_size):
yield chunk
chunk = await f.read(chunk_size)
class URLInputFile(InputFile):

View file

@ -1,6 +1,5 @@
from __future__ import annotations
import warnings
from typing import TYPE_CHECKING, Optional
from ..utils.text_decorations import add_surrogates, remove_surrogates
@ -36,11 +35,3 @@ class MessageEntity(MutableTelegramObject):
return remove_surrogates(
add_surrogates(text)[self.offset * 2 : (self.offset + self.length) * 2]
)
def extract(self, text: str) -> str:
warnings.warn(
"Method `MessageEntity.extract(...)` deprecated and will be removed in 3.0b5.\n"
" Use `MessageEntity.extract_from(...)` instead.",
DeprecationWarning,
)
return self.extract_from(text=text)

View file

@ -61,7 +61,7 @@ class Update(TelegramObject):
def __hash__(self) -> int:
return hash((type(self), self.update_id))
@property # type: ignore
@property
@lru_cache()
def event_type(self) -> str:
"""

View file

@ -9,7 +9,7 @@ account to their account on some external service.
You can read detailed description in the source:
https://core.telegram.org/bots#deep-linking
We have add some utils to get deep links more handy.
We have added some utils to get deep links more handy.
Basic link example:

View file

@ -200,7 +200,7 @@ class ItemsList(List[str]):
self.extend(other)
return self
__iadd__ = __add__ = __rand__ = __and__ = __ror__ = __or__ = add
__iadd__ = __add__ = __rand__ = __and__ = __ror__ = __or__ = add # type: ignore
class OrderedHelperMeta(type):

View file

@ -2,5 +2,5 @@ class AiogramWarning(Warning):
pass
class CodeHasNoEffect(AiogramWarning):
class Recommendation(AiogramWarning):
pass

View file

@ -0,0 +1,9 @@
##########
ErrorEvent
##########
.. automodule:: aiogram.types.error_event
:members:
:member-order: bysource
:undoc-members: True

View file

@ -189,3 +189,12 @@ Games
game
callback_game
game_high_score
Internal events
===============
.. toctree::
:maxdepth: 1
error_event

View file

@ -62,3 +62,5 @@ texinfo_documents = [
"Miscellaneous",
),
]
add_module_names = False

View file

@ -3,7 +3,7 @@ CallbackQueryHandler
####################
.. automodule:: aiogram.handler.callback_query
.. automodule:: aiogram.handlers.callback_query
:members:
:member-order: bysource
:undoc-members: True

View file

@ -86,10 +86,10 @@ Handle user leave or join events
from aiogram.filters import IS_MEMBER, IS_NOT_MEMBER
@router.chat_member(ChatMemberUpdatedFilter(member_status_changed=IS_MEMBER >> IS_NOT_MEMBER))
@router.chat_member(ChatMemberUpdatedFilter(IS_MEMBER >> IS_NOT_MEMBER))
async def on_user_leave(event: ChatMemberUpdated): ...
@router.chat_member(ChatMemberUpdatedFilter(member_status_changed=IS_NOT_MEMBER >> IS_MEMBER))
@router.chat_member(ChatMemberUpdatedFilter(IS_NOT_MEMBER >> IS_MEMBER))
async def on_user_join(event: ChatMemberUpdated): ...
Or construct your own terms via using pre-defined set of statuses and transitions.

View file

@ -3,7 +3,7 @@ Command
=======
.. autoclass:: aiogram.filters.command.Command
:members:
:members: __init__
:member-order: bysource
:undoc-members: False
@ -18,10 +18,11 @@ When filter is passed the :class:`aiogram.filters.command.CommandObject` will be
Usage
=====
1. Filter single variant of commands: :code:`Command(commands=["start"])` or :code:`Command(commands="start")`
2. Handle command by regexp pattern: :code:`Command(commands=[re.compile(r"item_(\d+)")])`
3. Match command by multiple variants: :code:`Command(commands=["item", re.compile(r"item_(\d+)")])`
4. Handle commands in public chats intended for other bots: :code:`Command(commands=["command"], commands_ignore_mention=True)`
1. Filter single variant of commands: :code:`Command("start")`
2. Handle command by regexp pattern: :code:`Command(re.compile(r"item_(\d+)"))`
3. Match command by multiple variants: :code:`Command("item", re.compile(r"item_(\d+)"))`
4. Handle commands in public chats intended for other bots: :code:`Command("command", ignore_mention=True)`
5. Use :class:`aiogram.types.bot_command.BotCommand` object as command reference :code:`Command(BotCommand(command="command", description="My awesome command")`
.. warning::

View file

@ -1,33 +0,0 @@
==================
ContentTypesFilter
==================
.. autoclass:: aiogram.filters.content_types.ContentTypesFilter
:members:
:member-order: bysource
:undoc-members: False
Can be imported:
- :code:`from aiogram.filters.content_types import ContentTypesFilter`
- :code:`from aiogram.filters import ContentTypesFilter`
Or used from filters factory by passing corresponding arguments to handler registration line
Usage
=====
1. Single content type: :code:`ContentTypesFilter(content_types=["sticker"])` or :code:`ContentTypesFilter(content_types="sticker")`
2. Multiple content types: :code:`ContentTypesFilter(content_types=["sticker", "photo"])`
3. Recommended: With usage of `ContentType` helper: :code:`ContentTypesFilter(content_types=[ContentType.PHOTO])`
4. Any content type: :code:`ContentTypesFilter(content_types=[ContentType.ANY])`
Allowed handlers
================
Allowed update types for this filter:
- :code:`message`
- :code:`edited_message`
- :code:`channel_post`
- :code:`edited_channel_post`

View file

@ -2,13 +2,6 @@
Filtering events
================
.. danger::
Note that the design of filters will be changed in 3.0b5
`Read more >> <https://github.com/aiogram/aiogram/issues/942>`_
Filters is needed for routing updates to the specific handler.
Searching of handler is always stops on first match set of filters are pass.
@ -23,91 +16,40 @@ Here is list of builtin filters:
:maxdepth: 1
command
content_types
text
chat_member_updated
exception
magic_filters
magic_data
callback_data
exception
Own filters specification
Writing own filters
=========================
Filters can be:
- Asynchronous function (:code:`async def my_filter(*args, **kwargs): pass`)
- Synchronous function (:code:`def my_filter(*args, **kwargs): pass`)
- Anonymous function (:code:`lambda event: True`)
- Any awaitable object
- Subclass of :class:`aiogram.filters.base.BaseFilter`
- Subclass of :class:`aiogram.filters.base.Filter`
- Instances of :ref:`MagicFilter <magic-filters>`
Filters should return bool or dict.
and should return bool or dict.
If the dictionary is passed as result of filter - resulted data will be propagated to the next
filters and handler as keywords arguments.
Writing bound filters
=====================
Base class for own filters
--------------------------
.. autoclass:: aiogram.filters.base.BaseFilter
:members: __call__
.. autoclass:: aiogram.filters.base.Filter
:members: __call__,update_handler_flags
:member-order: bysource
:undoc-members: False
Own filter example
------------------
For example if you need to make simple text filter:
.. code-block:: python
from aiogram.filters import BaseFilter
class MyText(BaseFilter):
my_text: str
async def __call__(self, message: Message) -> bool:
return message.text == self.my_text
router.message.bind_filter(MyText)
@router.message(my_text="hello")
async def my_handler(message: Message): ...
.. note::
Bound filters is always recursive propagates to the nested routers but will be available
in nested routers only after attaching routers so that's mean you will need to
include routers before registering handlers.
Resolving filters with default value
====================================
Bound Filters with only default arguments will be automatically applied with default values
to each handler in the router and nested routers to which this filter is bound.
For example, although we do not specify :code:`chat_type` in the handler filters,
but since the filter has a default value, the filter will be applied to the handler
with a default value :code:`private`:
.. code-block:: python
class ChatType(BaseFilter):
chat_type: str = "private"
async def __call__(self, message: Message , event_chat: Chat) -> bool:
if event_chat:
return event_chat.type == self.chat_type
else:
return False
router.message.bind_filter(ChatType)
@router.message()
async def my_handler(message: Message): ...
.. literalinclude:: ../../../examples/own_filter.py

View file

@ -1,6 +1,6 @@
====
=========
MagicData
====
=========
.. autoclass:: aiogram.filters.magic_data.MagicData
:members:
@ -9,7 +9,6 @@ MagicData
Can be imported:
- :code:`from aiogram.filters.magic_data import MagicData`
- :code:`from aiogram.filters import MagicData`
Or used from filters factory by passing corresponding arguments to handler registration line
@ -17,7 +16,7 @@ Or used from filters factory by passing corresponding arguments to handler regis
Usage
=====
#. :code:`MagicData(magic_data=F.event.from_user.id == F.config.admin_id)` (Note that :code:`config` should be passed from middleware)
#. :code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Note that :code:`config` should be passed from middleware)
Allowed handlers

View file

@ -11,7 +11,6 @@ Can be imported:
- :code:`from aiogram.filters.text import Text`
- :code:`from aiogram.filters import Text`
- :code:`from.filters import Text`
Or used from filters factory by passing corresponding arguments to handler registration line
@ -19,11 +18,11 @@ Usage
=====
#. Text equals with the specified value: :code:`Text(text="text") # value == 'text'`
#. Text starts with the specified value: :code:`Text(text_startswith="text") # value.startswith('text')`
#. Text ends with the specified value: :code:`Text(text_endswith="text") # value.endswith('text')`
#. Text contains the specified value: :code:`Text(text_contains="text") # value in 'text'`
#. Text starts with the specified value: :code:`Text(startswith="text") # value.startswith('text')`
#. Text ends with the specified value: :code:`Text(endswith="text") # value.endswith('text')`
#. Text contains the specified value: :code:`Text(contains="text") # value in 'text'`
#. Any of previous listed filters can be list, set or tuple of strings that's mean any of listed value should be equals/startswith/endswith/contains: :code:`Text(text=["text", "spam"])`
#. Ignore case can be combined with any previous listed filter: :code:`Text(text="Text", text_ignore_case=True) # value.lower() == 'text'.lower()`
#. Ignore case can be combined with any previous listed filter: :code:`Text(text="Text", ignore_case=True) # value.lower() == 'text'.lower()`
Allowed handlers
================

View file

@ -42,7 +42,7 @@ Via filters
.. code-block:: python
class Command(BaseFilter):
class Command(Filter):
...
def update_handler_flags(self, flags: Dict[str, Any]) -> None:

View file

@ -44,8 +44,8 @@ Message
(For example text, sticker and document are always of different content types of message)
Recommended way to check field availability before usage or use
:class:`aiogram.filters.content_types.ContentTypesFilter`
Recommended way to check field availability before usage, for example via :ref:`magic filter <magic-filters>`:
:code:`F.text` to handle text, :code:`F.sticker` to handle stickers only and etc.
.. code-block:: python
@ -141,7 +141,7 @@ Errors
.. code-block:: python
@router.errors()
async def error_handler(exception: Exception) -> Any: pass
async def error_handler(exception: ErrorEvent) -> Any: pass
Is useful for handling errors from other handlers
@ -152,9 +152,8 @@ Nested routers
.. warning::
Routers by the way can be nested to an another routers with some limitations:
1. Router **CAN NOT** include itself
1. Routers **CAN NOT** be used for circular including (router 1 include router 2, router 2 include router 3, router 3 include router 1)
1. Router **CAN NOT** include itself
1. Routers **CAN NOT** be used for circular including (router 1 include router 2, router 2 include router 3, router 3 include router 1)
Example:
@ -170,7 +169,7 @@ Example:
.. code-block:: python
:caption: module_12.py
:caption: module_2.py
:name: module_1
from module_2 import router2

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,188 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/download_file.rst:3
msgid "How to download file?"
msgstr ""
#: ../../api/download_file.rst:6
msgid "Download file manually"
msgstr ""
#: ../../api/download_file.rst:8
msgid ""
"First, you must get the `file_id` of the file you want to download. "
"Information about files sent to the bot is contained in `Message "
"<types/message.html>`__."
msgstr ""
#: ../../api/download_file.rst:11
msgid "For example, download the document that came to the bot."
msgstr ""
#: ../../api/download_file.rst:17
msgid ""
"Then use the `getFile <methods/get_file.html>`__ method to get "
"`file_path`."
msgstr ""
#: ../../api/download_file.rst:24
msgid ""
"After that, use the `download_file <#download-file>`__ method from the "
"bot object."
msgstr ""
#: ../../api/download_file.rst:27
msgid "download_file(...)"
msgstr ""
#: ../../api/download_file.rst:29
msgid "Download file by `file_path` to destination."
msgstr ""
#: ../../api/download_file.rst:31 ../../api/download_file.rst:81
msgid ""
"If you want to automatically create destination (:obj:`io.BytesIO`) use "
"default value of destination and handle result of this method."
msgstr ""
#: aiogram.client.bot.Bot:1 of
msgid "Bot class"
msgstr ""
#: aiogram.client.bot.Bot.download_file:1 of
msgid "Download file by file_path to destination."
msgstr ""
#: aiogram.client.bot.Bot.download:3 aiogram.client.bot.Bot.download_file:3 of
msgid ""
"If you want to automatically create destination (:class:`io.BytesIO`) use"
" default value of destination and handle result of this method."
msgstr ""
#: aiogram.client.bot.Bot.download aiogram.client.bot.Bot.download_file of
msgid "Parameters"
msgstr ""
#: aiogram.client.bot.Bot.download_file:6 of
msgid ""
"File path on Telegram server (You can get it from "
":obj:`aiogram.types.File`)"
msgstr ""
#: aiogram.client.bot.Bot.download:7 aiogram.client.bot.Bot.download_file:7 of
msgid ""
"Filename, file path or instance of :class:`io.IOBase`. For e.g. "
":class:`io.BytesIO`, defaults to None"
msgstr ""
#: aiogram.client.bot.Bot.download:8 aiogram.client.bot.Bot.download_file:8 of
msgid "Total timeout in seconds, defaults to 30"
msgstr ""
#: aiogram.client.bot.Bot.download:9 aiogram.client.bot.Bot.download_file:9 of
msgid "File chunks size, defaults to 64 kb"
msgstr ""
#: aiogram.client.bot.Bot.download:10 aiogram.client.bot.Bot.download_file:10
#: of
msgid ""
"Go to start of file when downloading is finished. Used only for "
"destination with :class:`typing.BinaryIO` type, defaults to True"
msgstr ""
#: ../../api/download_file.rst:38
msgid ""
"There are two options where you can download the file: to **disk** or to "
"**binary I/O object**."
msgstr ""
#: ../../api/download_file.rst:41
msgid "Download file to disk"
msgstr ""
#: ../../api/download_file.rst:43
msgid ""
"To download file to disk, you must specify the file name or path where to"
" download the file. In this case, the function will return nothing."
msgstr ""
#: ../../api/download_file.rst:51
msgid "Download file to binary I/O object"
msgstr ""
#: ../../api/download_file.rst:53
msgid ""
"To download file to binary I/O object, you must specify an object with "
"the :obj:`typing.BinaryIO` type or use the default (:obj:`None`) value."
msgstr ""
#: ../../api/download_file.rst:56
msgid "In the first case, the function will return your object:"
msgstr ""
#: ../../api/download_file.rst:64
msgid ""
"If you leave the default value, an :obj:`io.BytesIO` object will be "
"created and returned."
msgstr ""
#: ../../api/download_file.rst:72
msgid "Download file in short way"
msgstr ""
#: ../../api/download_file.rst:74
msgid ""
"Getting `file_path` manually every time is boring, so you should use the "
"`download <#download>`__ method."
msgstr ""
#: ../../api/download_file.rst:77
msgid "download(...)"
msgstr ""
#: ../../api/download_file.rst:79
msgid "Download file by `file_id` or `Downloadable` object to destination."
msgstr ""
#: aiogram.client.bot.Bot.download:1 of
msgid "Download file by file_id or Downloadable object to destination."
msgstr ""
#: aiogram.client.bot.Bot.download:6 of
msgid "file_id or Downloadable object"
msgstr ""
#: ../../api/download_file.rst:88
msgid ""
"It differs from `download_file <#download-file>`__ **only** in that it "
"accepts `file_id` or an `Downloadable` object (object that contains the "
"`file_id` attribute) instead of `file_path`."
msgstr ""
#: ../../api/download_file.rst:91
msgid ""
"You can download a file to `disk <#download-file-to-disk>`__ or to a "
"`binary I/O <#download-file-to-binary-io-object>`__ object in the same "
"way."
msgstr ""
#: ../../api/download_file.rst:93
msgid "Example:"
msgstr ""

View file

@ -0,0 +1,34 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/index.rst:3
msgid "Bot API"
msgstr ""
#: ../../api/index.rst:5
msgid ""
"**aiogram** now is fully support of `Telegram Bot API "
"<https://core.telegram.org/bots/api>`_"
msgstr ""
#: ../../api/index.rst:7
msgid ""
"All methods and types is fully autogenerated from Telegram Bot API docs "
"by parser with code-generator."
msgstr ""

View file

@ -0,0 +1,126 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/add_sticker_to_set.rst:3
msgid "addStickerToSet"
msgstr ""
#: ../../api/methods/add_sticker_to_set.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.add_sticker_to_set.AddStickerToSet:1 of
msgid ""
"Use this method to add a new sticker to a set created by the bot. You "
"**must** use exactly one of the fields *png_sticker*, *tgs_sticker*, or "
"*webm_sticker*. Animated stickers can be added to animated sticker sets "
"and only to them. Animated sticker sets can have up to 50 stickers. "
"Static sticker sets can have up to 120 stickers. Returns :code:`True` on "
"success."
msgstr ""
#: aiogram.methods.add_sticker_to_set.AddStickerToSet:3 of
msgid "Source: https://core.telegram.org/bots/api#addstickertoset"
msgstr ""
#: ../../docstring aiogram.methods.add_sticker_to_set.AddStickerToSet.user_id:1
#: of
msgid "User identifier of sticker set owner"
msgstr ""
#: ../../docstring aiogram.methods.add_sticker_to_set.AddStickerToSet.name:1 of
msgid "Sticker set name"
msgstr ""
#: ../../docstring aiogram.methods.add_sticker_to_set.AddStickerToSet.emojis:1
#: of
msgid "One or more emoji corresponding to the sticker"
msgstr ""
#: ../../docstring
#: aiogram.methods.add_sticker_to_set.AddStickerToSet.png_sticker:1 of
msgid ""
"**PNG** image with the sticker, must be up to 512 kilobytes in size, "
"dimensions must not exceed 512px, and either width or height must be "
"exactly 512px. Pass a *file_id* as a String to send a file that already "
"exists on the Telegram servers, pass an HTTP URL as a String for Telegram"
" to get a file from the Internet, or upload a new one using multipart"
"/form-data. :ref:`More information on Sending Files » <sending-files>`"
msgstr ""
#: ../../docstring
#: aiogram.methods.add_sticker_to_set.AddStickerToSet.tgs_sticker:1 of
msgid ""
"**TGS** animation with the sticker, uploaded using multipart/form-data. "
"See `https://core.telegram.org/stickers#animated-sticker-requirements "
"<https://core.telegram.org/stickers#animated-sticker-"
"requirements>`_`https://core.telegram.org/stickers#animated-sticker-"
"requirements <https://core.telegram.org/stickers#animated-sticker-"
"requirements>`_ for technical requirements"
msgstr ""
#: ../../docstring
#: aiogram.methods.add_sticker_to_set.AddStickerToSet.webm_sticker:1 of
msgid ""
"**WEBM** video with the sticker, uploaded using multipart/form-data. See "
"`https://core.telegram.org/stickers#video-sticker-requirements "
"<https://core.telegram.org/stickers#video-sticker-"
"requirements>`_`https://core.telegram.org/stickers#video-sticker-"
"requirements <https://core.telegram.org/stickers#video-sticker-"
"requirements>`_ for technical requirements"
msgstr ""
#: ../../docstring
#: aiogram.methods.add_sticker_to_set.AddStickerToSet.mask_position:1 of
msgid ""
"A JSON-serialized object for position where the mask should be placed on "
"faces"
msgstr ""
#: ../../api/methods/add_sticker_to_set.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/add_sticker_to_set.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/add_sticker_to_set.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/add_sticker_to_set.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/add_sticker_to_set.rst:29
msgid ":code:`from aiogram.methods.add_sticker_to_set import AddStickerToSet`"
msgstr ""
#: ../../api/methods/add_sticker_to_set.rst:30
msgid "alias: :code:`from aiogram.methods import AddStickerToSet`"
msgstr ""
#: ../../api/methods/add_sticker_to_set.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/add_sticker_to_set.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,122 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/answer_callback_query.rst:3
msgid "answerCallbackQuery"
msgstr ""
#: ../../api/methods/answer_callback_query.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.answer_callback_query.AnswerCallbackQuery:1 of
msgid ""
"Use this method to send answers to callback queries sent from `inline "
"keyboards <https://core.telegram.org/bots#inline-keyboards-and-on-the-"
"fly-updating>`_. The answer will be displayed to the user as a "
"notification at the top of the chat screen or as an alert. On success, "
":code:`True` is returned."
msgstr ""
#: aiogram.methods.answer_callback_query.AnswerCallbackQuery:3 of
msgid ""
"Alternatively, the user can be redirected to the specified Game URL. For "
"this option to work, you must first create a game for your bot via "
"`@BotFather <https://t.me/botfather>`_ and accept the terms. Otherwise, "
"you may use links like :code:`t.me/your_bot?start=XXXX` that open your "
"bot with a parameter."
msgstr ""
#: aiogram.methods.answer_callback_query.AnswerCallbackQuery:5 of
msgid "Source: https://core.telegram.org/bots/api#answercallbackquery"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_callback_query.AnswerCallbackQuery.callback_query_id:1
#: of
msgid "Unique identifier for the query to be answered"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_callback_query.AnswerCallbackQuery.text:1 of
msgid ""
"Text of the notification. If not specified, nothing will be shown to the "
"user, 0-200 characters"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_callback_query.AnswerCallbackQuery.show_alert:1 of
msgid ""
"If :code:`True`, an alert will be shown by the client instead of a "
"notification at the top of the chat screen. Defaults to *false*."
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_callback_query.AnswerCallbackQuery.url:1 of
msgid ""
"URL that will be opened by the user's client. If you have created a "
":class:`aiogram.types.game.Game` and accepted the conditions via "
"`@BotFather <https://t.me/botfather>`_, specify the URL that opens your "
"game - note that this will only work if the query comes from a "
"`https://core.telegram.org/bots/api#inlinekeyboardbutton "
"<https://core.telegram.org/bots/api#inlinekeyboardbutton>`_ "
"*callback_game* button."
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_callback_query.AnswerCallbackQuery.cache_time:1 of
msgid ""
"The maximum amount of time in seconds that the result of the callback "
"query may be cached client-side. Telegram apps will support caching "
"starting in version 3.14. Defaults to 0."
msgstr ""
#: ../../api/methods/answer_callback_query.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/answer_callback_query.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/answer_callback_query.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/answer_callback_query.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/answer_callback_query.rst:29
msgid ""
":code:`from aiogram.methods.answer_callback_query import "
"AnswerCallbackQuery`"
msgstr ""
#: ../../api/methods/answer_callback_query.rst:30
msgid "alias: :code:`from aiogram.methods import AnswerCallbackQuery`"
msgstr ""
#: ../../api/methods/answer_callback_query.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/answer_callback_query.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,124 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/answer_inline_query.rst:3
msgid "answerInlineQuery"
msgstr ""
#: ../../api/methods/answer_inline_query.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.answer_inline_query.AnswerInlineQuery:1 of
msgid ""
"Use this method to send answers to an inline query. On success, "
":code:`True` is returned."
msgstr ""
#: aiogram.methods.answer_inline_query.AnswerInlineQuery:3 of
msgid "No more than **50** results per query are allowed."
msgstr ""
#: aiogram.methods.answer_inline_query.AnswerInlineQuery:5 of
msgid "Source: https://core.telegram.org/bots/api#answerinlinequery"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_inline_query.AnswerInlineQuery.inline_query_id:1 of
msgid "Unique identifier for the answered query"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_inline_query.AnswerInlineQuery.results:1 of
msgid "A JSON-serialized array of results for the inline query"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_inline_query.AnswerInlineQuery.cache_time:1 of
msgid ""
"The maximum amount of time in seconds that the result of the inline query"
" may be cached on the server. Defaults to 300."
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_inline_query.AnswerInlineQuery.is_personal:1 of
msgid ""
"Pass :code:`True` if results may be cached on the server side only for "
"the user that sent the query. By default, results may be returned to any "
"user who sends the same query"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_inline_query.AnswerInlineQuery.next_offset:1 of
msgid ""
"Pass the offset that a client should send in the next query with the same"
" text to receive more results. Pass an empty string if there are no more "
"results or if you don't support pagination. Offset length can't exceed 64"
" bytes."
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_inline_query.AnswerInlineQuery.switch_pm_text:1 of
msgid ""
"If passed, clients will display a button with specified text that "
"switches the user to a private chat with the bot and sends the bot a "
"start message with the parameter *switch_pm_parameter*"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_inline_query.AnswerInlineQuery.switch_pm_parameter:1
#: of
msgid ""
"`Deep-linking <https://core.telegram.org/bots#deep-linking>`_ parameter "
"for the /start message sent to the bot when user presses the switch "
"button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, "
":code:`_` and :code:`-` are allowed."
msgstr ""
#: ../../api/methods/answer_inline_query.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/answer_inline_query.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/answer_inline_query.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/answer_inline_query.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/answer_inline_query.rst:29
msgid ":code:`from aiogram.methods.answer_inline_query import AnswerInlineQuery`"
msgstr ""
#: ../../api/methods/answer_inline_query.rst:30
msgid "alias: :code:`from aiogram.methods import AnswerInlineQuery`"
msgstr ""
#: ../../api/methods/answer_inline_query.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/answer_inline_query.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,100 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/answer_pre_checkout_query.rst:3
msgid "answerPreCheckoutQuery"
msgstr ""
#: ../../api/methods/answer_pre_checkout_query.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery:1 of
msgid ""
"Once the user has confirmed their payment and shipping details, the Bot "
"API sends the final confirmation in the form of an "
":class:`aiogram.types.update.Update` with the field *pre_checkout_query*."
" Use this method to respond to such pre-checkout queries. On success, "
":code:`True` is returned. **Note:** The Bot API must receive an answer "
"within 10 seconds after the pre-checkout query was sent."
msgstr ""
#: aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery:3 of
msgid "Source: https://core.telegram.org/bots/api#answerprecheckoutquery"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery.pre_checkout_query_id:1
#: of
msgid "Unique identifier for the query to be answered"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery.ok:1 of
msgid ""
"Specify :code:`True` if everything is alright (goods are available, etc.)"
" and the bot is ready to proceed with the order. Use :code:`False` if "
"there are any problems."
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery.error_message:1
#: of
msgid ""
"Required if *ok* is :code:`False`. Error message in human readable form "
"that explains the reason for failure to proceed with the checkout (e.g. "
"\"Sorry, somebody just bought the last of our amazing black T-shirts "
"while you were busy filling out your payment details. Please choose a "
"different color or garment!\"). Telegram will display this message to the"
" user."
msgstr ""
#: ../../api/methods/answer_pre_checkout_query.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/answer_pre_checkout_query.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/answer_pre_checkout_query.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/answer_pre_checkout_query.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/answer_pre_checkout_query.rst:29
msgid ""
":code:`from aiogram.methods.answer_pre_checkout_query import "
"AnswerPreCheckoutQuery`"
msgstr ""
#: ../../api/methods/answer_pre_checkout_query.rst:30
msgid "alias: :code:`from aiogram.methods import AnswerPreCheckoutQuery`"
msgstr ""
#: ../../api/methods/answer_pre_checkout_query.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/answer_pre_checkout_query.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,104 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/answer_shipping_query.rst:3
msgid "answerShippingQuery"
msgstr ""
#: ../../api/methods/answer_shipping_query.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.answer_shipping_query.AnswerShippingQuery:1 of
msgid ""
"If you sent an invoice requesting a shipping address and the parameter "
"*is_flexible* was specified, the Bot API will send an "
":class:`aiogram.types.update.Update` with a *shipping_query* field to the"
" bot. Use this method to reply to shipping queries. On success, "
":code:`True` is returned."
msgstr ""
#: aiogram.methods.answer_shipping_query.AnswerShippingQuery:3 of
msgid "Source: https://core.telegram.org/bots/api#answershippingquery"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_shipping_query.AnswerShippingQuery.shipping_query_id:1
#: of
msgid "Unique identifier for the query to be answered"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_shipping_query.AnswerShippingQuery.ok:1 of
msgid ""
"Pass :code:`True` if delivery to the specified address is possible and "
":code:`False` if there are any problems (for example, if delivery to the "
"specified address is not possible)"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_shipping_query.AnswerShippingQuery.shipping_options:1
#: of
msgid ""
"Required if *ok* is :code:`True`. A JSON-serialized array of available "
"shipping options."
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_shipping_query.AnswerShippingQuery.error_message:1 of
msgid ""
"Required if *ok* is :code:`False`. Error message in human readable form "
"that explains why it is impossible to complete the order (e.g. \"Sorry, "
"delivery to your desired address is unavailable'). Telegram will display "
"this message to the user."
msgstr ""
#: ../../api/methods/answer_shipping_query.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/answer_shipping_query.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/answer_shipping_query.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/answer_shipping_query.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/answer_shipping_query.rst:29
msgid ""
":code:`from aiogram.methods.answer_shipping_query import "
"AnswerShippingQuery`"
msgstr ""
#: ../../api/methods/answer_shipping_query.rst:30
msgid "alias: :code:`from aiogram.methods import AnswerShippingQuery`"
msgstr ""
#: ../../api/methods/answer_shipping_query.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/answer_shipping_query.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,82 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/answer_web_app_query.rst:3
msgid "answerWebAppQuery"
msgstr ""
#: ../../api/methods/answer_web_app_query.rst:5
msgid "Returns: :obj:`SentWebAppMessage`"
msgstr ""
#: aiogram.methods.answer_web_app_query.AnswerWebAppQuery:1 of
msgid ""
"Use this method to set the result of an interaction with a `Web App "
"<https://core.telegram.org/bots/webapps>`_ and send a corresponding "
"message on behalf of the user to the chat from which the query "
"originated. On success, a "
":class:`aiogram.types.sent_web_app_message.SentWebAppMessage` object is "
"returned."
msgstr ""
#: aiogram.methods.answer_web_app_query.AnswerWebAppQuery:3 of
msgid "Source: https://core.telegram.org/bots/api#answerwebappquery"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_web_app_query.AnswerWebAppQuery.web_app_query_id:1 of
msgid "Unique identifier for the query to be answered"
msgstr ""
#: ../../docstring
#: aiogram.methods.answer_web_app_query.AnswerWebAppQuery.result:1 of
msgid "A JSON-serialized object describing the message to be sent"
msgstr ""
#: ../../api/methods/answer_web_app_query.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/answer_web_app_query.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/answer_web_app_query.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/answer_web_app_query.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/answer_web_app_query.rst:29
msgid ":code:`from aiogram.methods.answer_web_app_query import AnswerWebAppQuery`"
msgstr ""
#: ../../api/methods/answer_web_app_query.rst:30
msgid "alias: :code:`from aiogram.methods import AnswerWebAppQuery`"
msgstr ""
#: ../../api/methods/answer_web_app_query.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/answer_web_app_query.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,85 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/approve_chat_join_request.rst:3
msgid "approveChatJoinRequest"
msgstr ""
#: ../../api/methods/approve_chat_join_request.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.approve_chat_join_request.ApproveChatJoinRequest:1 of
msgid ""
"Use this method to approve a chat join request. The bot must be an "
"administrator in the chat for this to work and must have the "
"*can_invite_users* administrator right. Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.approve_chat_join_request.ApproveChatJoinRequest:3 of
msgid "Source: https://core.telegram.org/bots/api#approvechatjoinrequest"
msgstr ""
#: ../../docstring
#: aiogram.methods.approve_chat_join_request.ApproveChatJoinRequest.chat_id:1
#: of
msgid ""
"Unique identifier for the target chat or username of the target channel "
"(in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring
#: aiogram.methods.approve_chat_join_request.ApproveChatJoinRequest.user_id:1
#: of
msgid "Unique identifier of the target user"
msgstr ""
#: ../../api/methods/approve_chat_join_request.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/approve_chat_join_request.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/approve_chat_join_request.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/approve_chat_join_request.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/approve_chat_join_request.rst:29
msgid ""
":code:`from aiogram.methods.approve_chat_join_request import "
"ApproveChatJoinRequest`"
msgstr ""
#: ../../api/methods/approve_chat_join_request.rst:30
msgid "alias: :code:`from aiogram.methods import ApproveChatJoinRequest`"
msgstr ""
#: ../../api/methods/approve_chat_join_request.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/approve_chat_join_request.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,100 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/ban_chat_member.rst:3
msgid "banChatMember"
msgstr ""
#: ../../api/methods/ban_chat_member.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.ban_chat_member.BanChatMember:1 of
msgid ""
"Use this method to ban a user in a group, a supergroup or a channel. In "
"the case of supergroups and channels, the user will not be able to return"
" to the chat on their own using invite links, etc., unless `unbanned "
"<https://core.telegram.org/bots/api#unbanchatmember>`_ first. The bot "
"must be an administrator in the chat for this to work and must have the "
"appropriate administrator rights. Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.ban_chat_member.BanChatMember:3 of
msgid "Source: https://core.telegram.org/bots/api#banchatmember"
msgstr ""
#: ../../docstring aiogram.methods.ban_chat_member.BanChatMember.chat_id:1 of
msgid ""
"Unique identifier for the target group or username of the target "
"supergroup or channel (in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring aiogram.methods.ban_chat_member.BanChatMember.user_id:1 of
msgid "Unique identifier of the target user"
msgstr ""
#: ../../docstring aiogram.methods.ban_chat_member.BanChatMember.until_date:1
#: of
msgid ""
"Date when the user will be unbanned, unix time. If user is banned for "
"more than 366 days or less than 30 seconds from the current time they are"
" considered to be banned forever. Applied for supergroups and channels "
"only."
msgstr ""
#: ../../docstring
#: aiogram.methods.ban_chat_member.BanChatMember.revoke_messages:1 of
msgid ""
"Pass :code:`True` to delete all messages from the chat for the user that "
"is being removed. If :code:`False`, the user will be able to see messages"
" in the group that were sent before the user was removed. Always "
":code:`True` for supergroups and channels."
msgstr ""
#: ../../api/methods/ban_chat_member.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/ban_chat_member.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/ban_chat_member.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/ban_chat_member.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/ban_chat_member.rst:29
msgid ":code:`from aiogram.methods.ban_chat_member import BanChatMember`"
msgstr ""
#: ../../api/methods/ban_chat_member.rst:30
msgid "alias: :code:`from aiogram.methods import BanChatMember`"
msgstr ""
#: ../../api/methods/ban_chat_member.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/ban_chat_member.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,85 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/ban_chat_sender_chat.rst:3
msgid "banChatSenderChat"
msgstr ""
#: ../../api/methods/ban_chat_sender_chat.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.ban_chat_sender_chat.BanChatSenderChat:1 of
msgid ""
"Use this method to ban a channel chat in a supergroup or a channel. Until"
" the chat is `unbanned "
"<https://core.telegram.org/bots/api#unbanchatsenderchat>`_, the owner of "
"the banned chat won't be able to send messages on behalf of **any of "
"their channels**. The bot must be an administrator in the supergroup or "
"channel for this to work and must have the appropriate administrator "
"rights. Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.ban_chat_sender_chat.BanChatSenderChat:3 of
msgid "Source: https://core.telegram.org/bots/api#banchatsenderchat"
msgstr ""
#: ../../docstring
#: aiogram.methods.ban_chat_sender_chat.BanChatSenderChat.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target channel "
"(in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring
#: aiogram.methods.ban_chat_sender_chat.BanChatSenderChat.sender_chat_id:1 of
msgid "Unique identifier of the target sender chat"
msgstr ""
#: ../../api/methods/ban_chat_sender_chat.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/ban_chat_sender_chat.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/ban_chat_sender_chat.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/ban_chat_sender_chat.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/ban_chat_sender_chat.rst:29
msgid ":code:`from aiogram.methods.ban_chat_sender_chat import BanChatSenderChat`"
msgstr ""
#: ../../api/methods/ban_chat_sender_chat.rst:30
msgid "alias: :code:`from aiogram.methods import BanChatSenderChat`"
msgstr ""
#: ../../api/methods/ban_chat_sender_chat.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/ban_chat_sender_chat.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,71 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/close.rst:3
msgid "close"
msgstr ""
#: ../../api/methods/close.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.close.Close:1 of
msgid ""
"Use this method to close the bot instance before moving it from one local"
" server to another. You need to delete the webhook before calling this "
"method to ensure that the bot isn't launched again after server restart. "
"The method will return error 429 in the first 10 minutes after the bot is"
" launched. Returns :code:`True` on success. Requires no parameters."
msgstr ""
#: aiogram.methods.close.Close:3 of
msgid "Source: https://core.telegram.org/bots/api#close"
msgstr ""
#: ../../api/methods/close.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/close.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/close.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/close.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/close.rst:29
msgid ":code:`from aiogram.methods.close import Close`"
msgstr ""
#: ../../api/methods/close.rst:30
msgid "alias: :code:`from aiogram.methods import Close`"
msgstr ""
#: ../../api/methods/close.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/close.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,143 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/copy_message.rst:3
msgid "copyMessage"
msgstr ""
#: ../../api/methods/copy_message.rst:5
msgid "Returns: :obj:`MessageId`"
msgstr ""
#: aiogram.methods.copy_message.CopyMessage:1 of
msgid ""
"Use this method to copy messages of any kind. Service messages and "
"invoice messages can't be copied. A quiz "
":class:`aiogram.methods.poll.Poll` can be copied only if the value of the"
" field *correct_option_id* is known to the bot. The method is analogous "
"to the method :class:`aiogram.methods.forward_message.ForwardMessage`, "
"but the copied message doesn't have a link to the original message. "
"Returns the :class:`aiogram.types.message_id.MessageId` of the sent "
"message on success."
msgstr ""
#: aiogram.methods.copy_message.CopyMessage:3 of
msgid "Source: https://core.telegram.org/bots/api#copymessage"
msgstr ""
#: ../../docstring aiogram.methods.copy_message.CopyMessage.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target channel "
"(in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring aiogram.methods.copy_message.CopyMessage.from_chat_id:1 of
msgid ""
"Unique identifier for the chat where the original message was sent (or "
"channel username in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring aiogram.methods.copy_message.CopyMessage.message_id:1 of
msgid "Message identifier in the chat specified in *from_chat_id*"
msgstr ""
#: ../../docstring aiogram.methods.copy_message.CopyMessage.caption:1 of
msgid ""
"New caption for media, 0-1024 characters after entities parsing. If not "
"specified, the original caption is kept"
msgstr ""
#: ../../docstring aiogram.methods.copy_message.CopyMessage.parse_mode:1 of
msgid ""
"Mode for parsing entities in the new caption. See `formatting options "
"<https://core.telegram.org/bots/api#formatting-options>`_ for more "
"details."
msgstr ""
#: ../../docstring aiogram.methods.copy_message.CopyMessage.caption_entities:1
#: of
msgid ""
"A JSON-serialized list of special entities that appear in the new "
"caption, which can be specified instead of *parse_mode*"
msgstr ""
#: ../../docstring
#: aiogram.methods.copy_message.CopyMessage.disable_notification:1 of
msgid ""
"Sends the message `silently <https://telegram.org/blog/channels-2-0"
"#silent-messages>`_. Users will receive a notification with no sound."
msgstr ""
#: ../../docstring aiogram.methods.copy_message.CopyMessage.protect_content:1
#: of
msgid "Protects the contents of the sent message from forwarding and saving"
msgstr ""
#: ../../docstring
#: aiogram.methods.copy_message.CopyMessage.reply_to_message_id:1 of
msgid "If the message is a reply, ID of the original message"
msgstr ""
#: ../../docstring
#: aiogram.methods.copy_message.CopyMessage.allow_sending_without_reply:1 of
msgid ""
"Pass :code:`True` if the message should be sent even if the specified "
"replied-to message is not found"
msgstr ""
#: ../../docstring aiogram.methods.copy_message.CopyMessage.reply_markup:1 of
msgid ""
"Additional interface options. A JSON-serialized object for an `inline "
"keyboard <https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-"
"updating>`_, `custom reply keyboard "
"<https://core.telegram.org/bots#keyboards>`_, instructions to remove "
"reply keyboard or to force a reply from the user."
msgstr ""
#: ../../api/methods/copy_message.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/copy_message.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/copy_message.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/copy_message.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/copy_message.rst:29
msgid ":code:`from aiogram.methods.copy_message import CopyMessage`"
msgstr ""
#: ../../api/methods/copy_message.rst:30
msgid "alias: :code:`from aiogram.methods import CopyMessage`"
msgstr ""
#: ../../api/methods/copy_message.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/copy_message.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,110 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/create_chat_invite_link.rst:3
msgid "createChatInviteLink"
msgstr ""
#: ../../api/methods/create_chat_invite_link.rst:5
msgid "Returns: :obj:`ChatInviteLink`"
msgstr ""
#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink:1 of
msgid ""
"Use this method to create an additional invite link for a chat. The bot "
"must be an administrator in the chat for this to work and must have the "
"appropriate administrator rights. The link can be revoked using the "
"method "
":class:`aiogram.methods.revoke_chat_invite_link.RevokeChatInviteLink`. "
"Returns the new invite link as "
":class:`aiogram.types.chat_invite_link.ChatInviteLink` object."
msgstr ""
#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink:3 of
msgid "Source: https://core.telegram.org/bots/api#createchatinvitelink"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target channel "
"(in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink.name:1 of
msgid "Invite link name; 0-32 characters"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink.expire_date:1
#: of
msgid "Point in time (Unix timestamp) when the link will expire"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink.member_limit:1
#: of
msgid ""
"The maximum number of users that can be members of the chat "
"simultaneously after joining the chat via this invite link; 1-99999"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink.creates_join_request:1
#: of
msgid ""
":code:`True`, if users joining the chat via the link need to be approved "
"by chat administrators. If :code:`True`, *member_limit* can't be "
"specified"
msgstr ""
#: ../../api/methods/create_chat_invite_link.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/create_chat_invite_link.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/create_chat_invite_link.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/create_chat_invite_link.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/create_chat_invite_link.rst:29
msgid ""
":code:`from aiogram.methods.create_chat_invite_link import "
"CreateChatInviteLink`"
msgstr ""
#: ../../api/methods/create_chat_invite_link.rst:30
msgid "alias: :code:`from aiogram.methods import CreateChatInviteLink`"
msgstr ""
#: ../../api/methods/create_chat_invite_link.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/create_chat_invite_link.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,207 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/create_invoice_link.rst:3
msgid "createInvoiceLink"
msgstr ""
#: ../../api/methods/create_invoice_link.rst:5
msgid "Returns: :obj:`str`"
msgstr ""
#: aiogram.methods.create_invoice_link.CreateInvoiceLink:1 of
msgid ""
"Use this method to create a link for an invoice. Returns the created "
"invoice link as *String* on success."
msgstr ""
#: aiogram.methods.create_invoice_link.CreateInvoiceLink:3 of
msgid "Source: https://core.telegram.org/bots/api#createinvoicelink"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.title:1 of
msgid "Product name, 1-32 characters"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.description:1 of
msgid "Product description, 1-255 characters"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.payload:1 of
msgid ""
"Bot-defined invoice payload, 1-128 bytes. This will not be displayed to "
"the user, use for your internal processes."
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.provider_token:1 of
msgid "Payment provider token, obtained via `BotFather <https://t.me/botfather>`_"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.currency:1 of
msgid ""
"Three-letter ISO 4217 currency code, see `more on currencies "
"<https://core.telegram.org/bots/payments#supported-currencies>`_"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.prices:1 of
msgid ""
"Price breakdown, a JSON-serialized list of components (e.g. product "
"price, tax, discount, delivery cost, delivery tax, bonus, etc.)"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.max_tip_amount:1 of
msgid ""
"The maximum accepted amount for tips in the *smallest units* of the "
"currency (integer, **not** float/double). For example, for a maximum tip "
"of :code:`US$ 1.45` pass :code:`max_tip_amount = 145`. See the *exp* "
"parameter in `currencies.json "
"<https://core.telegram.org/bots/payments/currencies.json>`_, it shows the"
" number of digits past the decimal point for each currency (2 for the "
"majority of currencies). Defaults to 0"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.suggested_tip_amounts:1
#: of
msgid ""
"A JSON-serialized array of suggested amounts of tips in the *smallest "
"units* of the currency (integer, **not** float/double). At most 4 "
"suggested tip amounts can be specified. The suggested tip amounts must be"
" positive, passed in a strictly increased order and must not exceed "
"*max_tip_amount*."
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.provider_data:1 of
msgid ""
"JSON-serialized data about the invoice, which will be shared with the "
"payment provider. A detailed description of required fields should be "
"provided by the payment provider."
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.photo_url:1 of
msgid ""
"URL of the product photo for the invoice. Can be a photo of the goods or "
"a marketing image for a service."
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.photo_size:1 of
msgid "Photo size in bytes"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.photo_width:1 of
msgid "Photo width"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.photo_height:1 of
msgid "Photo height"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.need_name:1 of
msgid ""
"Pass :code:`True` if you require the user's full name to complete the "
"order"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.need_phone_number:1 of
msgid ""
"Pass :code:`True` if you require the user's phone number to complete the "
"order"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.need_email:1 of
msgid ""
"Pass :code:`True` if you require the user's email address to complete the"
" order"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.need_shipping_address:1
#: of
msgid ""
"Pass :code:`True` if you require the user's shipping address to complete "
"the order"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.send_phone_number_to_provider:1
#: of
msgid ""
"Pass :code:`True` if the user's phone number should be sent to the "
"provider"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.send_email_to_provider:1
#: of
msgid ""
"Pass :code:`True` if the user's email address should be sent to the "
"provider"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_invoice_link.CreateInvoiceLink.is_flexible:1 of
msgid "Pass :code:`True` if the final price depends on the shipping method"
msgstr ""
#: ../../api/methods/create_invoice_link.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/create_invoice_link.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/create_invoice_link.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/create_invoice_link.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/create_invoice_link.rst:29
msgid ":code:`from aiogram.methods.create_invoice_link import CreateInvoiceLink`"
msgstr ""
#: ../../api/methods/create_invoice_link.rst:30
msgid "alias: :code:`from aiogram.methods import CreateInvoiceLink`"
msgstr ""
#: ../../api/methods/create_invoice_link.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/create_invoice_link.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,146 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/create_new_sticker_set.rst:3
msgid "createNewStickerSet"
msgstr ""
#: ../../api/methods/create_new_sticker_set.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet:1 of
msgid ""
"Use this method to create a new sticker set owned by a user. The bot will"
" be able to edit the sticker set thus created. You **must** use exactly "
"one of the fields *png_sticker*, *tgs_sticker*, or *webm_sticker*. "
"Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet:3 of
msgid "Source: https://core.telegram.org/bots/api#createnewstickerset"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.user_id:1 of
msgid "User identifier of created sticker set owner"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.name:1 of
msgid ""
"Short name of sticker set, to be used in :code:`t.me/addstickers/` URLs "
"(e.g., *animals*). Can contain only English letters, digits and "
"underscores. Must begin with a letter, can't contain consecutive "
"underscores and must end in :code:`\"_by_<bot_username>\"`. "
":code:`<bot_username>` is case insensitive. 1-64 characters."
msgstr ""
#: ../../docstring
#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.title:1 of
msgid "Sticker set title, 1-64 characters"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.emojis:1 of
msgid "One or more emoji corresponding to the sticker"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.png_sticker:1 of
msgid ""
"**PNG** image with the sticker, must be up to 512 kilobytes in size, "
"dimensions must not exceed 512px, and either width or height must be "
"exactly 512px. Pass a *file_id* as a String to send a file that already "
"exists on the Telegram servers, pass an HTTP URL as a String for Telegram"
" to get a file from the Internet, or upload a new one using multipart"
"/form-data. :ref:`More information on Sending Files » <sending-files>`"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.tgs_sticker:1 of
msgid ""
"**TGS** animation with the sticker, uploaded using multipart/form-data. "
"See `https://core.telegram.org/stickers#animated-sticker-requirements "
"<https://core.telegram.org/stickers#animated-sticker-"
"requirements>`_`https://core.telegram.org/stickers#animated-sticker-"
"requirements <https://core.telegram.org/stickers#animated-sticker-"
"requirements>`_ for technical requirements"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.webm_sticker:1 of
msgid ""
"**WEBM** video with the sticker, uploaded using multipart/form-data. See "
"`https://core.telegram.org/stickers#video-sticker-requirements "
"<https://core.telegram.org/stickers#video-sticker-"
"requirements>`_`https://core.telegram.org/stickers#video-sticker-"
"requirements <https://core.telegram.org/stickers#video-sticker-"
"requirements>`_ for technical requirements"
msgstr ""
#: ../../docstring
#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.sticker_type:1 of
msgid ""
"Type of stickers in the set, pass 'regular' or 'mask'. Custom emoji "
"sticker sets can't be created via the Bot API at the moment. By default, "
"a regular sticker set is created."
msgstr ""
#: ../../docstring
#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.mask_position:1
#: of
msgid ""
"A JSON-serialized object for position where the mask should be placed on "
"faces"
msgstr ""
#: ../../api/methods/create_new_sticker_set.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/create_new_sticker_set.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/create_new_sticker_set.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/create_new_sticker_set.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/create_new_sticker_set.rst:29
msgid ""
":code:`from aiogram.methods.create_new_sticker_set import "
"CreateNewStickerSet`"
msgstr ""
#: ../../api/methods/create_new_sticker_set.rst:30
msgid "alias: :code:`from aiogram.methods import CreateNewStickerSet`"
msgstr ""
#: ../../api/methods/create_new_sticker_set.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/create_new_sticker_set.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,85 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/decline_chat_join_request.rst:3
msgid "declineChatJoinRequest"
msgstr ""
#: ../../api/methods/decline_chat_join_request.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.decline_chat_join_request.DeclineChatJoinRequest:1 of
msgid ""
"Use this method to decline a chat join request. The bot must be an "
"administrator in the chat for this to work and must have the "
"*can_invite_users* administrator right. Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.decline_chat_join_request.DeclineChatJoinRequest:3 of
msgid "Source: https://core.telegram.org/bots/api#declinechatjoinrequest"
msgstr ""
#: ../../docstring
#: aiogram.methods.decline_chat_join_request.DeclineChatJoinRequest.chat_id:1
#: of
msgid ""
"Unique identifier for the target chat or username of the target channel "
"(in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring
#: aiogram.methods.decline_chat_join_request.DeclineChatJoinRequest.user_id:1
#: of
msgid "Unique identifier of the target user"
msgstr ""
#: ../../api/methods/decline_chat_join_request.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/decline_chat_join_request.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/decline_chat_join_request.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/decline_chat_join_request.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/decline_chat_join_request.rst:29
msgid ""
":code:`from aiogram.methods.decline_chat_join_request import "
"DeclineChatJoinRequest`"
msgstr ""
#: ../../api/methods/decline_chat_join_request.rst:30
msgid "alias: :code:`from aiogram.methods import DeclineChatJoinRequest`"
msgstr ""
#: ../../api/methods/decline_chat_join_request.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/decline_chat_join_request.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,77 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/delete_chat_photo.rst:3
msgid "deleteChatPhoto"
msgstr ""
#: ../../api/methods/delete_chat_photo.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.delete_chat_photo.DeleteChatPhoto:1 of
msgid ""
"Use this method to delete a chat photo. Photos can't be changed for "
"private chats. The bot must be an administrator in the chat for this to "
"work and must have the appropriate administrator rights. Returns "
":code:`True` on success."
msgstr ""
#: aiogram.methods.delete_chat_photo.DeleteChatPhoto:3 of
msgid "Source: https://core.telegram.org/bots/api#deletechatphoto"
msgstr ""
#: ../../docstring aiogram.methods.delete_chat_photo.DeleteChatPhoto.chat_id:1
#: of
msgid ""
"Unique identifier for the target chat or username of the target channel "
"(in the format :code:`@channelusername`)"
msgstr ""
#: ../../api/methods/delete_chat_photo.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/delete_chat_photo.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/delete_chat_photo.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/delete_chat_photo.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/delete_chat_photo.rst:29
msgid ":code:`from aiogram.methods.delete_chat_photo import DeleteChatPhoto`"
msgstr ""
#: ../../api/methods/delete_chat_photo.rst:30
msgid "alias: :code:`from aiogram.methods import DeleteChatPhoto`"
msgstr ""
#: ../../api/methods/delete_chat_photo.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/delete_chat_photo.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,81 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/delete_chat_sticker_set.rst:3
msgid "deleteChatStickerSet"
msgstr ""
#: ../../api/methods/delete_chat_sticker_set.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.delete_chat_sticker_set.DeleteChatStickerSet:1 of
msgid ""
"Use this method to delete a group sticker set from a supergroup. The bot "
"must be an administrator in the chat for this to work and must have the "
"appropriate administrator rights. Use the field *can_set_sticker_set* "
"optionally returned in :class:`aiogram.methods.get_chat.GetChat` requests"
" to check if the bot can use this method. Returns :code:`True` on "
"success."
msgstr ""
#: aiogram.methods.delete_chat_sticker_set.DeleteChatStickerSet:3 of
msgid "Source: https://core.telegram.org/bots/api#deletechatstickerset"
msgstr ""
#: ../../docstring
#: aiogram.methods.delete_chat_sticker_set.DeleteChatStickerSet.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target "
"supergroup (in the format :code:`@supergroupusername`)"
msgstr ""
#: ../../api/methods/delete_chat_sticker_set.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/delete_chat_sticker_set.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/delete_chat_sticker_set.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/delete_chat_sticker_set.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/delete_chat_sticker_set.rst:29
msgid ""
":code:`from aiogram.methods.delete_chat_sticker_set import "
"DeleteChatStickerSet`"
msgstr ""
#: ../../api/methods/delete_chat_sticker_set.rst:30
msgid "alias: :code:`from aiogram.methods import DeleteChatStickerSet`"
msgstr ""
#: ../../api/methods/delete_chat_sticker_set.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/delete_chat_sticker_set.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,120 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/delete_message.rst:3
msgid "deleteMessage"
msgstr ""
#: ../../api/methods/delete_message.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.delete_message.DeleteMessage:1 of
msgid ""
"Use this method to delete a message, including service messages, with the"
" following limitations:"
msgstr ""
#: aiogram.methods.delete_message.DeleteMessage:3 of
msgid "A message can only be deleted if it was sent less than 48 hours ago."
msgstr ""
#: aiogram.methods.delete_message.DeleteMessage:5 of
msgid ""
"A dice message in a private chat can only be deleted if it was sent more "
"than 24 hours ago."
msgstr ""
#: aiogram.methods.delete_message.DeleteMessage:7 of
msgid ""
"Bots can delete outgoing messages in private chats, groups, and "
"supergroups."
msgstr ""
#: aiogram.methods.delete_message.DeleteMessage:9 of
msgid "Bots can delete incoming messages in private chats."
msgstr ""
#: aiogram.methods.delete_message.DeleteMessage:11 of
msgid ""
"Bots granted *can_post_messages* permissions can delete outgoing messages"
" in channels."
msgstr ""
#: aiogram.methods.delete_message.DeleteMessage:13 of
msgid ""
"If the bot is an administrator of a group, it can delete any message "
"there."
msgstr ""
#: aiogram.methods.delete_message.DeleteMessage:15 of
msgid ""
"If the bot has *can_delete_messages* permission in a supergroup or a "
"channel, it can delete any message there."
msgstr ""
#: aiogram.methods.delete_message.DeleteMessage:17 of
msgid "Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.delete_message.DeleteMessage:19 of
msgid "Source: https://core.telegram.org/bots/api#deletemessage"
msgstr ""
#: ../../docstring aiogram.methods.delete_message.DeleteMessage.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target channel "
"(in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring aiogram.methods.delete_message.DeleteMessage.message_id:1 of
msgid "Identifier of the message to delete"
msgstr ""
#: ../../api/methods/delete_message.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/delete_message.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/delete_message.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/delete_message.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/delete_message.rst:29
msgid ":code:`from aiogram.methods.delete_message import DeleteMessage`"
msgstr ""
#: ../../api/methods/delete_message.rst:30
msgid "alias: :code:`from aiogram.methods import DeleteMessage`"
msgstr ""
#: ../../api/methods/delete_message.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/delete_message.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,86 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/delete_my_commands.rst:3
msgid "deleteMyCommands"
msgstr ""
#: ../../api/methods/delete_my_commands.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.delete_my_commands.DeleteMyCommands:1 of
msgid ""
"Use this method to delete the list of the bot's commands for the given "
"scope and user language. After deletion, `higher level commands "
"<https://core.telegram.org/bots/api#determining-list-of-commands>`_ will "
"be shown to affected users. Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.delete_my_commands.DeleteMyCommands:3 of
msgid "Source: https://core.telegram.org/bots/api#deletemycommands"
msgstr ""
#: ../../docstring aiogram.methods.delete_my_commands.DeleteMyCommands.scope:1
#: of
msgid ""
"A JSON-serialized object, describing scope of users for which the "
"commands are relevant. Defaults to "
":class:`aiogram.types.bot_command_scope_default.BotCommandScopeDefault`."
msgstr ""
#: ../../docstring
#: aiogram.methods.delete_my_commands.DeleteMyCommands.language_code:1 of
msgid ""
"A two-letter ISO 639-1 language code. If empty, commands will be applied "
"to all users from the given scope, for whose language there are no "
"dedicated commands"
msgstr ""
#: ../../api/methods/delete_my_commands.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/delete_my_commands.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/delete_my_commands.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/delete_my_commands.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/delete_my_commands.rst:29
msgid ":code:`from aiogram.methods.delete_my_commands import DeleteMyCommands`"
msgstr ""
#: ../../api/methods/delete_my_commands.rst:30
msgid "alias: :code:`from aiogram.methods import DeleteMyCommands`"
msgstr ""
#: ../../api/methods/delete_my_commands.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/delete_my_commands.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,75 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/delete_sticker_from_set.rst:3
msgid "deleteStickerFromSet"
msgstr ""
#: ../../api/methods/delete_sticker_from_set.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.delete_sticker_from_set.DeleteStickerFromSet:1 of
msgid ""
"Use this method to delete a sticker from a set created by the bot. "
"Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.delete_sticker_from_set.DeleteStickerFromSet:3 of
msgid "Source: https://core.telegram.org/bots/api#deletestickerfromset"
msgstr ""
#: ../../docstring
#: aiogram.methods.delete_sticker_from_set.DeleteStickerFromSet.sticker:1 of
msgid "File identifier of the sticker"
msgstr ""
#: ../../api/methods/delete_sticker_from_set.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/delete_sticker_from_set.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/delete_sticker_from_set.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/delete_sticker_from_set.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/delete_sticker_from_set.rst:29
msgid ""
":code:`from aiogram.methods.delete_sticker_from_set import "
"DeleteStickerFromSet`"
msgstr ""
#: ../../api/methods/delete_sticker_from_set.rst:30
msgid "alias: :code:`from aiogram.methods import DeleteStickerFromSet`"
msgstr ""
#: ../../api/methods/delete_sticker_from_set.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/delete_sticker_from_set.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,74 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/delete_webhook.rst:3
msgid "deleteWebhook"
msgstr ""
#: ../../api/methods/delete_webhook.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.delete_webhook.DeleteWebhook:1 of
msgid ""
"Use this method to remove webhook integration if you decide to switch "
"back to :class:`aiogram.methods.get_updates.GetUpdates`. Returns "
":code:`True` on success."
msgstr ""
#: aiogram.methods.delete_webhook.DeleteWebhook:3 of
msgid "Source: https://core.telegram.org/bots/api#deletewebhook"
msgstr ""
#: ../../docstring
#: aiogram.methods.delete_webhook.DeleteWebhook.drop_pending_updates:1 of
msgid "Pass :code:`True` to drop all pending updates"
msgstr ""
#: ../../api/methods/delete_webhook.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/delete_webhook.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/delete_webhook.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/delete_webhook.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/delete_webhook.rst:29
msgid ":code:`from aiogram.methods.delete_webhook import DeleteWebhook`"
msgstr ""
#: ../../api/methods/delete_webhook.rst:30
msgid "alias: :code:`from aiogram.methods import DeleteWebhook`"
msgstr ""
#: ../../api/methods/delete_webhook.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/delete_webhook.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,110 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/edit_chat_invite_link.rst:3
msgid "editChatInviteLink"
msgstr ""
#: ../../api/methods/edit_chat_invite_link.rst:5
msgid "Returns: :obj:`ChatInviteLink`"
msgstr ""
#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink:1 of
msgid ""
"Use this method to edit a non-primary invite link created by the bot. The"
" bot must be an administrator in the chat for this to work and must have "
"the appropriate administrator rights. Returns the edited invite link as a"
" :class:`aiogram.types.chat_invite_link.ChatInviteLink` object."
msgstr ""
#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink:3 of
msgid "Source: https://core.telegram.org/bots/api#editchatinvitelink"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target channel "
"(in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.invite_link:1 of
msgid "The invite link to edit"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.name:1 of
msgid "Invite link name; 0-32 characters"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.expire_date:1 of
msgid "Point in time (Unix timestamp) when the link will expire"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.member_limit:1 of
msgid ""
"The maximum number of users that can be members of the chat "
"simultaneously after joining the chat via this invite link; 1-99999"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.creates_join_request:1
#: of
msgid ""
":code:`True`, if users joining the chat via the link need to be approved "
"by chat administrators. If :code:`True`, *member_limit* can't be "
"specified"
msgstr ""
#: ../../api/methods/edit_chat_invite_link.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/edit_chat_invite_link.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/edit_chat_invite_link.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/edit_chat_invite_link.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/edit_chat_invite_link.rst:29
msgid ""
":code:`from aiogram.methods.edit_chat_invite_link import "
"EditChatInviteLink`"
msgstr ""
#: ../../api/methods/edit_chat_invite_link.rst:30
msgid "alias: :code:`from aiogram.methods import EditChatInviteLink`"
msgstr ""
#: ../../api/methods/edit_chat_invite_link.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/edit_chat_invite_link.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,124 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/edit_message_caption.rst:3
msgid "editMessageCaption"
msgstr ""
#: ../../api/methods/edit_message_caption.rst:5
msgid "Returns: :obj:`Union[Message, bool]`"
msgstr ""
#: aiogram.methods.edit_message_caption.EditMessageCaption:1 of
msgid ""
"Use this method to edit captions of messages. On success, if the edited "
"message is not an inline message, the edited "
":class:`aiogram.types.message.Message` is returned, otherwise "
":code:`True` is returned."
msgstr ""
#: aiogram.methods.edit_message_caption.EditMessageCaption:3 of
msgid "Source: https://core.telegram.org/bots/api#editmessagecaption"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_caption.EditMessageCaption.chat_id:1 of
msgid ""
"Required if *inline_message_id* is not specified. Unique identifier for "
"the target chat or username of the target channel (in the format "
":code:`@channelusername`)"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_caption.EditMessageCaption.message_id:1 of
msgid ""
"Required if *inline_message_id* is not specified. Identifier of the "
"message to edit"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_caption.EditMessageCaption.inline_message_id:1
#: of
msgid ""
"Required if *chat_id* and *message_id* are not specified. Identifier of "
"the inline message"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_caption.EditMessageCaption.caption:1 of
msgid "New caption of the message, 0-1024 characters after entities parsing"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_caption.EditMessageCaption.parse_mode:1 of
msgid ""
"Mode for parsing entities in the message caption. See `formatting options"
" <https://core.telegram.org/bots/api#formatting-options>`_ for more "
"details."
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_caption.EditMessageCaption.caption_entities:1
#: of
msgid ""
"A JSON-serialized list of special entities that appear in the caption, "
"which can be specified instead of *parse_mode*"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_caption.EditMessageCaption.reply_markup:1 of
msgid ""
"A JSON-serialized object for an `inline keyboard "
"<https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-"
"updating>`_."
msgstr ""
#: ../../api/methods/edit_message_caption.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/edit_message_caption.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/edit_message_caption.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/edit_message_caption.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/edit_message_caption.rst:29
msgid ""
":code:`from aiogram.methods.edit_message_caption import "
"EditMessageCaption`"
msgstr ""
#: ../../api/methods/edit_message_caption.rst:30
msgid "alias: :code:`from aiogram.methods import EditMessageCaption`"
msgstr ""
#: ../../api/methods/edit_message_caption.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/edit_message_caption.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,143 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/edit_message_live_location.rst:3
msgid "editMessageLiveLocation"
msgstr ""
#: ../../api/methods/edit_message_live_location.rst:5
msgid "Returns: :obj:`Union[Message, bool]`"
msgstr ""
#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation:1 of
msgid ""
"Use this method to edit live location messages. A location can be edited "
"until its *live_period* expires or editing is explicitly disabled by a "
"call to "
":class:`aiogram.methods.stop_message_live_location.StopMessageLiveLocation`."
" On success, if the edited message is not an inline message, the edited "
":class:`aiogram.types.message.Message` is returned, otherwise "
":code:`True` is returned."
msgstr ""
#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation:3 of
msgid "Source: https://core.telegram.org/bots/api#editmessagelivelocation"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.latitude:1
#: of
msgid "Latitude of new location"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.longitude:1
#: of
msgid "Longitude of new location"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.chat_id:1
#: of
msgid ""
"Required if *inline_message_id* is not specified. Unique identifier for "
"the target chat or username of the target channel (in the format "
":code:`@channelusername`)"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.message_id:1
#: of
msgid ""
"Required if *inline_message_id* is not specified. Identifier of the "
"message to edit"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.inline_message_id:1
#: of
msgid ""
"Required if *chat_id* and *message_id* are not specified. Identifier of "
"the inline message"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.horizontal_accuracy:1
#: of
msgid "The radius of uncertainty for the location, measured in meters; 0-1500"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.heading:1
#: of
msgid ""
"Direction in which the user is moving, in degrees. Must be between 1 and "
"360 if specified."
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.proximity_alert_radius:1
#: of
msgid ""
"The maximum distance for proximity alerts about approaching another chat "
"member, in meters. Must be between 1 and 100000 if specified."
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.reply_markup:1
#: of
msgid ""
"A JSON-serialized object for a new `inline keyboard "
"<https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-"
"updating>`_."
msgstr ""
#: ../../api/methods/edit_message_live_location.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/edit_message_live_location.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/edit_message_live_location.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/edit_message_live_location.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/edit_message_live_location.rst:29
msgid ""
":code:`from aiogram.methods.edit_message_live_location import "
"EditMessageLiveLocation`"
msgstr ""
#: ../../api/methods/edit_message_live_location.rst:30
msgid "alias: :code:`from aiogram.methods import EditMessageLiveLocation`"
msgstr ""
#: ../../api/methods/edit_message_live_location.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/edit_message_live_location.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,109 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/edit_message_media.rst:3
msgid "editMessageMedia"
msgstr ""
#: ../../api/methods/edit_message_media.rst:5
msgid "Returns: :obj:`Union[Message, bool]`"
msgstr ""
#: aiogram.methods.edit_message_media.EditMessageMedia:1 of
msgid ""
"Use this method to edit animation, audio, document, photo, or video "
"messages. If a message is part of a message album, then it can be edited "
"only to an audio for audio albums, only to a document for document albums"
" and to a photo or a video otherwise. When an inline message is edited, a"
" new file can't be uploaded; use a previously uploaded file via its "
"file_id or specify a URL. On success, if the edited message is not an "
"inline message, the edited :class:`aiogram.types.message.Message` is "
"returned, otherwise :code:`True` is returned."
msgstr ""
#: aiogram.methods.edit_message_media.EditMessageMedia:3 of
msgid "Source: https://core.telegram.org/bots/api#editmessagemedia"
msgstr ""
#: ../../docstring aiogram.methods.edit_message_media.EditMessageMedia.media:1
#: of
msgid "A JSON-serialized object for a new media content of the message"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_media.EditMessageMedia.chat_id:1 of
msgid ""
"Required if *inline_message_id* is not specified. Unique identifier for "
"the target chat or username of the target channel (in the format "
":code:`@channelusername`)"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_media.EditMessageMedia.message_id:1 of
msgid ""
"Required if *inline_message_id* is not specified. Identifier of the "
"message to edit"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_media.EditMessageMedia.inline_message_id:1 of
msgid ""
"Required if *chat_id* and *message_id* are not specified. Identifier of "
"the inline message"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_media.EditMessageMedia.reply_markup:1 of
msgid ""
"A JSON-serialized object for a new `inline keyboard "
"<https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-"
"updating>`_."
msgstr ""
#: ../../api/methods/edit_message_media.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/edit_message_media.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/edit_message_media.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/edit_message_media.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/edit_message_media.rst:29
msgid ":code:`from aiogram.methods.edit_message_media import EditMessageMedia`"
msgstr ""
#: ../../api/methods/edit_message_media.rst:30
msgid "alias: :code:`from aiogram.methods import EditMessageMedia`"
msgstr ""
#: ../../api/methods/edit_message_media.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/edit_message_media.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,106 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/edit_message_reply_markup.rst:3
msgid "editMessageReplyMarkup"
msgstr ""
#: ../../api/methods/edit_message_reply_markup.rst:5
msgid "Returns: :obj:`Union[Message, bool]`"
msgstr ""
#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup:1 of
msgid ""
"Use this method to edit only the reply markup of messages. On success, if"
" the edited message is not an inline message, the edited "
":class:`aiogram.types.message.Message` is returned, otherwise "
":code:`True` is returned."
msgstr ""
#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup:3 of
msgid "Source: https://core.telegram.org/bots/api#editmessagereplymarkup"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup.chat_id:1
#: of
msgid ""
"Required if *inline_message_id* is not specified. Unique identifier for "
"the target chat or username of the target channel (in the format "
":code:`@channelusername`)"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup.message_id:1
#: of
msgid ""
"Required if *inline_message_id* is not specified. Identifier of the "
"message to edit"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup.inline_message_id:1
#: of
msgid ""
"Required if *chat_id* and *message_id* are not specified. Identifier of "
"the inline message"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup.reply_markup:1
#: of
msgid ""
"A JSON-serialized object for an `inline keyboard "
"<https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-"
"updating>`_."
msgstr ""
#: ../../api/methods/edit_message_reply_markup.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/edit_message_reply_markup.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/edit_message_reply_markup.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/edit_message_reply_markup.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/edit_message_reply_markup.rst:29
msgid ""
":code:`from aiogram.methods.edit_message_reply_markup import "
"EditMessageReplyMarkup`"
msgstr ""
#: ../../api/methods/edit_message_reply_markup.rst:30
msgid "alias: :code:`from aiogram.methods import EditMessageReplyMarkup`"
msgstr ""
#: ../../api/methods/edit_message_reply_markup.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/edit_message_reply_markup.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,126 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/edit_message_text.rst:3
msgid "editMessageText"
msgstr ""
#: ../../api/methods/edit_message_text.rst:5
msgid "Returns: :obj:`Union[Message, bool]`"
msgstr ""
#: aiogram.methods.edit_message_text.EditMessageText:1 of
msgid ""
"Use this method to edit text and `game "
"<https://core.telegram.org/bots/api#games>`_ messages. On success, if the"
" edited message is not an inline message, the edited "
":class:`aiogram.types.message.Message` is returned, otherwise "
":code:`True` is returned."
msgstr ""
#: aiogram.methods.edit_message_text.EditMessageText:3 of
msgid "Source: https://core.telegram.org/bots/api#editmessagetext"
msgstr ""
#: ../../docstring aiogram.methods.edit_message_text.EditMessageText.text:1 of
msgid "New text of the message, 1-4096 characters after entities parsing"
msgstr ""
#: ../../docstring aiogram.methods.edit_message_text.EditMessageText.chat_id:1
#: of
msgid ""
"Required if *inline_message_id* is not specified. Unique identifier for "
"the target chat or username of the target channel (in the format "
":code:`@channelusername`)"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_text.EditMessageText.message_id:1 of
msgid ""
"Required if *inline_message_id* is not specified. Identifier of the "
"message to edit"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_text.EditMessageText.inline_message_id:1 of
msgid ""
"Required if *chat_id* and *message_id* are not specified. Identifier of "
"the inline message"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_text.EditMessageText.parse_mode:1 of
msgid ""
"Mode for parsing entities in the message text. See `formatting options "
"<https://core.telegram.org/bots/api#formatting-options>`_ for more "
"details."
msgstr ""
#: ../../docstring aiogram.methods.edit_message_text.EditMessageText.entities:1
#: of
msgid ""
"A JSON-serialized list of special entities that appear in message text, "
"which can be specified instead of *parse_mode*"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_text.EditMessageText.disable_web_page_preview:1
#: of
msgid "Disables link previews for links in this message"
msgstr ""
#: ../../docstring
#: aiogram.methods.edit_message_text.EditMessageText.reply_markup:1 of
msgid ""
"A JSON-serialized object for an `inline keyboard "
"<https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-"
"updating>`_."
msgstr ""
#: ../../api/methods/edit_message_text.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/edit_message_text.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/edit_message_text.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/edit_message_text.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/edit_message_text.rst:29
msgid ":code:`from aiogram.methods.edit_message_text import EditMessageText`"
msgstr ""
#: ../../api/methods/edit_message_text.rst:30
msgid "alias: :code:`from aiogram.methods import EditMessageText`"
msgstr ""
#: ../../api/methods/edit_message_text.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/edit_message_text.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,93 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/export_chat_invite_link.rst:3
msgid "exportChatInviteLink"
msgstr ""
#: ../../api/methods/export_chat_invite_link.rst:5
msgid "Returns: :obj:`str`"
msgstr ""
#: aiogram.methods.export_chat_invite_link.ExportChatInviteLink:1 of
msgid ""
"Use this method to generate a new primary invite link for a chat; any "
"previously generated primary link is revoked. The bot must be an "
"administrator in the chat for this to work and must have the appropriate "
"administrator rights. Returns the new invite link as *String* on success."
msgstr ""
#: aiogram.methods.export_chat_invite_link.ExportChatInviteLink:3 of
msgid ""
"Note: Each administrator in a chat generates their own invite links. Bots"
" can't use invite links generated by other administrators. If you want "
"your bot to work with invite links, it will need to generate its own link"
" using "
":class:`aiogram.methods.export_chat_invite_link.ExportChatInviteLink` or "
"by calling the :class:`aiogram.methods.get_chat.GetChat` method. If your "
"bot needs to generate a new primary invite link replacing its previous "
"one, use "
":class:`aiogram.methods.export_chat_invite_link.ExportChatInviteLink` "
"again."
msgstr ""
#: aiogram.methods.export_chat_invite_link.ExportChatInviteLink:5 of
msgid "Source: https://core.telegram.org/bots/api#exportchatinvitelink"
msgstr ""
#: ../../docstring
#: aiogram.methods.export_chat_invite_link.ExportChatInviteLink.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target channel "
"(in the format :code:`@channelusername`)"
msgstr ""
#: ../../api/methods/export_chat_invite_link.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/export_chat_invite_link.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/export_chat_invite_link.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/export_chat_invite_link.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/export_chat_invite_link.rst:29
msgid ""
":code:`from aiogram.methods.export_chat_invite_link import "
"ExportChatInviteLink`"
msgstr ""
#: ../../api/methods/export_chat_invite_link.rst:30
msgid "alias: :code:`from aiogram.methods import ExportChatInviteLink`"
msgstr ""
#: ../../api/methods/export_chat_invite_link.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/export_chat_invite_link.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,99 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/forward_message.rst:3
msgid "forwardMessage"
msgstr ""
#: ../../api/methods/forward_message.rst:5
msgid "Returns: :obj:`Message`"
msgstr ""
#: aiogram.methods.forward_message.ForwardMessage:1 of
msgid ""
"Use this method to forward messages of any kind. Service messages can't "
"be forwarded. On success, the sent :class:`aiogram.types.message.Message`"
" is returned."
msgstr ""
#: aiogram.methods.forward_message.ForwardMessage:3 of
msgid "Source: https://core.telegram.org/bots/api#forwardmessage"
msgstr ""
#: ../../docstring aiogram.methods.forward_message.ForwardMessage.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target channel "
"(in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring
#: aiogram.methods.forward_message.ForwardMessage.from_chat_id:1 of
msgid ""
"Unique identifier for the chat where the original message was sent (or "
"channel username in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring aiogram.methods.forward_message.ForwardMessage.message_id:1
#: of
msgid "Message identifier in the chat specified in *from_chat_id*"
msgstr ""
#: ../../docstring
#: aiogram.methods.forward_message.ForwardMessage.disable_notification:1 of
msgid ""
"Sends the message `silently <https://telegram.org/blog/channels-2-0"
"#silent-messages>`_. Users will receive a notification with no sound."
msgstr ""
#: ../../docstring
#: aiogram.methods.forward_message.ForwardMessage.protect_content:1 of
msgid "Protects the contents of the forwarded message from forwarding and saving"
msgstr ""
#: ../../api/methods/forward_message.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/forward_message.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/forward_message.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/forward_message.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/forward_message.rst:29
msgid ":code:`from aiogram.methods.forward_message import ForwardMessage`"
msgstr ""
#: ../../api/methods/forward_message.rst:30
msgid "alias: :code:`from aiogram.methods import ForwardMessage`"
msgstr ""
#: ../../api/methods/forward_message.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/forward_message.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_chat.rst:3
msgid "getChat"
msgstr ""
#: ../../api/methods/get_chat.rst:5
msgid "Returns: :obj:`Chat`"
msgstr ""
#: aiogram.methods.get_chat.GetChat:1 of
msgid ""
"Use this method to get up to date information about the chat (current "
"name of the user for one-on-one conversations, current username of a "
"user, group or channel, etc.). Returns a :class:`aiogram.types.chat.Chat`"
" object on success."
msgstr ""
#: aiogram.methods.get_chat.GetChat:3 of
msgid "Source: https://core.telegram.org/bots/api#getchat"
msgstr ""
#: ../../docstring aiogram.methods.get_chat.GetChat.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target "
"supergroup or channel (in the format :code:`@channelusername`)"
msgstr ""
#: ../../api/methods/get_chat.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_chat.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_chat.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_chat.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_chat.rst:29
msgid ":code:`from aiogram.methods.get_chat import GetChat`"
msgstr ""
#: ../../api/methods/get_chat.rst:30
msgid "alias: :code:`from aiogram.methods import GetChat`"
msgstr ""
#: ../../api/methods/get_chat.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,77 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_chat_administrators.rst:3
msgid "getChatAdministrators"
msgstr ""
#: ../../api/methods/get_chat_administrators.rst:5
msgid ""
"Returns: :obj:`List[Union[ChatMemberOwner, ChatMemberAdministrator, "
"ChatMemberMember, ChatMemberRestricted, ChatMemberLeft, "
"ChatMemberBanned]]`"
msgstr ""
#: aiogram.methods.get_chat_administrators.GetChatAdministrators:1 of
msgid ""
"Use this method to get a list of administrators in a chat, which aren't "
"bots. Returns an Array of :class:`aiogram.types.chat_member.ChatMember` "
"objects."
msgstr ""
#: aiogram.methods.get_chat_administrators.GetChatAdministrators:3 of
msgid "Source: https://core.telegram.org/bots/api#getchatadministrators"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_chat_administrators.GetChatAdministrators.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target "
"supergroup or channel (in the format :code:`@channelusername`)"
msgstr ""
#: ../../api/methods/get_chat_administrators.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_chat_administrators.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_chat_administrators.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_chat_administrators.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_chat_administrators.rst:29
msgid ""
":code:`from aiogram.methods.get_chat_administrators import "
"GetChatAdministrators`"
msgstr ""
#: ../../api/methods/get_chat_administrators.rst:30
msgid "alias: :code:`from aiogram.methods import GetChatAdministrators`"
msgstr ""
#: ../../api/methods/get_chat_administrators.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,77 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_chat_member.rst:3
msgid "getChatMember"
msgstr ""
#: ../../api/methods/get_chat_member.rst:5
msgid ""
"Returns: :obj:`Union[ChatMemberOwner, ChatMemberAdministrator, "
"ChatMemberMember, ChatMemberRestricted, ChatMemberLeft, "
"ChatMemberBanned]`"
msgstr ""
#: aiogram.methods.get_chat_member.GetChatMember:1 of
msgid ""
"Use this method to get information about a member of a chat. Returns a "
":class:`aiogram.types.chat_member.ChatMember` object on success."
msgstr ""
#: aiogram.methods.get_chat_member.GetChatMember:3 of
msgid "Source: https://core.telegram.org/bots/api#getchatmember"
msgstr ""
#: ../../docstring aiogram.methods.get_chat_member.GetChatMember.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target "
"supergroup or channel (in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring aiogram.methods.get_chat_member.GetChatMember.user_id:1 of
msgid "Unique identifier of the target user"
msgstr ""
#: ../../api/methods/get_chat_member.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_chat_member.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_chat_member.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_chat_member.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_chat_member.rst:29
msgid ":code:`from aiogram.methods.get_chat_member import GetChatMember`"
msgstr ""
#: ../../api/methods/get_chat_member.rst:30
msgid "alias: :code:`from aiogram.methods import GetChatMember`"
msgstr ""
#: ../../api/methods/get_chat_member.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,73 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_chat_member_count.rst:3
msgid "getChatMemberCount"
msgstr ""
#: ../../api/methods/get_chat_member_count.rst:5
msgid "Returns: :obj:`int`"
msgstr ""
#: aiogram.methods.get_chat_member_count.GetChatMemberCount:1 of
msgid ""
"Use this method to get the number of members in a chat. Returns *Int* on "
"success."
msgstr ""
#: aiogram.methods.get_chat_member_count.GetChatMemberCount:3 of
msgid "Source: https://core.telegram.org/bots/api#getchatmembercount"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_chat_member_count.GetChatMemberCount.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target "
"supergroup or channel (in the format :code:`@channelusername`)"
msgstr ""
#: ../../api/methods/get_chat_member_count.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_chat_member_count.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_chat_member_count.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_chat_member_count.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_chat_member_count.rst:29
msgid ""
":code:`from aiogram.methods.get_chat_member_count import "
"GetChatMemberCount`"
msgstr ""
#: ../../api/methods/get_chat_member_count.rst:30
msgid "alias: :code:`from aiogram.methods import GetChatMemberCount`"
msgstr ""
#: ../../api/methods/get_chat_member_count.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,73 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_chat_members_count.rst:3
msgid "getChatMembersCount"
msgstr ""
#: ../../api/methods/get_chat_members_count.rst:5
msgid "Returns: :obj:`int`"
msgstr ""
#: aiogram.methods.get_chat_members_count.GetChatMembersCount:5 of
msgid ""
"Use this method to get the number of members in a chat. Returns *Int* on "
"success."
msgstr ""
#: aiogram.methods.get_chat_members_count.GetChatMembersCount:7 of
msgid "Source: https://core.telegram.org/bots/api#getchatmembercount"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_chat_members_count.GetChatMembersCount.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target "
"supergroup or channel (in the format :code:`@channelusername`)"
msgstr ""
#: ../../api/methods/get_chat_members_count.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_chat_members_count.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_chat_members_count.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_chat_members_count.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_chat_members_count.rst:29
msgid ""
":code:`from aiogram.methods.get_chat_members_count import "
"GetChatMembersCount`"
msgstr ""
#: ../../api/methods/get_chat_members_count.rst:30
msgid "alias: :code:`from aiogram.methods import GetChatMembersCount`"
msgstr ""
#: ../../api/methods/get_chat_members_count.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_chat_menu_button.rst:3
msgid "getChatMenuButton"
msgstr ""
#: ../../api/methods/get_chat_menu_button.rst:5
msgid "Returns: :obj:`MenuButton`"
msgstr ""
#: aiogram.methods.get_chat_menu_button.GetChatMenuButton:1 of
msgid ""
"Use this method to get the current value of the bot's menu button in a "
"private chat, or the default menu button. Returns "
":class:`aiogram.types.menu_button.MenuButton` on success."
msgstr ""
#: aiogram.methods.get_chat_menu_button.GetChatMenuButton:3 of
msgid "Source: https://core.telegram.org/bots/api#getchatmenubutton"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_chat_menu_button.GetChatMenuButton.chat_id:1 of
msgid ""
"Unique identifier for the target private chat. If not specified, default "
"bot's menu button will be returned"
msgstr ""
#: ../../api/methods/get_chat_menu_button.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_chat_menu_button.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_chat_menu_button.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_chat_menu_button.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_chat_menu_button.rst:29
msgid ":code:`from aiogram.methods.get_chat_menu_button import GetChatMenuButton`"
msgstr ""
#: ../../api/methods/get_chat_menu_button.rst:30
msgid "alias: :code:`from aiogram.methods import GetChatMenuButton`"
msgstr ""
#: ../../api/methods/get_chat_menu_button.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,75 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_custom_emoji_stickers.rst:3
msgid "getCustomEmojiStickers"
msgstr ""
#: ../../api/methods/get_custom_emoji_stickers.rst:5
msgid "Returns: :obj:`List[Sticker]`"
msgstr ""
#: aiogram.methods.get_custom_emoji_stickers.GetCustomEmojiStickers:1 of
msgid ""
"Use this method to get information about custom emoji stickers by their "
"identifiers. Returns an Array of :class:`aiogram.types.sticker.Sticker` "
"objects."
msgstr ""
#: aiogram.methods.get_custom_emoji_stickers.GetCustomEmojiStickers:3 of
msgid "Source: https://core.telegram.org/bots/api#getcustomemojistickers"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_custom_emoji_stickers.GetCustomEmojiStickers.custom_emoji_ids:1
#: of
msgid ""
"List of custom emoji identifiers. At most 200 custom emoji identifiers "
"can be specified."
msgstr ""
#: ../../api/methods/get_custom_emoji_stickers.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_custom_emoji_stickers.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_custom_emoji_stickers.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_custom_emoji_stickers.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_custom_emoji_stickers.rst:29
msgid ""
":code:`from aiogram.methods.get_custom_emoji_stickers import "
"GetCustomEmojiStickers`"
msgstr ""
#: ../../api/methods/get_custom_emoji_stickers.rst:30
msgid "alias: :code:`from aiogram.methods import GetCustomEmojiStickers`"
msgstr ""
#: ../../api/methods/get_custom_emoji_stickers.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,77 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_file.rst:3
msgid "getFile"
msgstr ""
#: ../../api/methods/get_file.rst:5
msgid "Returns: :obj:`File`"
msgstr ""
#: aiogram.methods.get_file.GetFile:1 of
msgid ""
"Use this method to get basic information about a file and prepare it for "
"downloading. For the moment, bots can download files of up to 20MB in "
"size. On success, a :class:`aiogram.types.file.File` object is returned. "
"The file can then be downloaded via the link "
":code:`https://api.telegram.org/file/bot<token>/<file_path>`, where "
":code:`<file_path>` is taken from the response. It is guaranteed that the"
" link will be valid for at least 1 hour. When the link expires, a new one"
" can be requested by calling :class:`aiogram.methods.get_file.GetFile` "
"again. **Note:** This function may not preserve the original file name "
"and MIME type. You should save the file's MIME type and name (if "
"available) when the File object is received."
msgstr ""
#: aiogram.methods.get_file.GetFile:4 of
msgid "Source: https://core.telegram.org/bots/api#getfile"
msgstr ""
#: ../../docstring aiogram.methods.get_file.GetFile.file_id:1 of
msgid "File identifier to get information about"
msgstr ""
#: ../../api/methods/get_file.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_file.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_file.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_file.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_file.rst:29
msgid ":code:`from aiogram.methods.get_file import GetFile`"
msgstr ""
#: ../../api/methods/get_file.rst:30
msgid "alias: :code:`from aiogram.methods import GetFile`"
msgstr ""
#: ../../api/methods/get_file.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,100 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_game_high_scores.rst:3
msgid "getGameHighScores"
msgstr ""
#: ../../api/methods/get_game_high_scores.rst:5
msgid "Returns: :obj:`List[GameHighScore]`"
msgstr ""
#: aiogram.methods.get_game_high_scores.GetGameHighScores:1 of
msgid ""
"Use this method to get data for high score tables. Will return the score "
"of the specified user and several of their neighbors in a game. Returns "
"an Array of :class:`aiogram.types.game_high_score.GameHighScore` objects."
msgstr ""
#: aiogram.methods.get_game_high_scores.GetGameHighScores:3 of
msgid ""
"This method will currently return scores for the target user, plus two of"
" their closest neighbors on each side. Will also return the top three "
"users if the user and their neighbors are not among them. Please note "
"that this behavior is subject to change."
msgstr ""
#: aiogram.methods.get_game_high_scores.GetGameHighScores:5 of
msgid "Source: https://core.telegram.org/bots/api#getgamehighscores"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_game_high_scores.GetGameHighScores.user_id:1 of
msgid "Target user id"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_game_high_scores.GetGameHighScores.chat_id:1 of
msgid ""
"Required if *inline_message_id* is not specified. Unique identifier for "
"the target chat"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_game_high_scores.GetGameHighScores.message_id:1 of
msgid ""
"Required if *inline_message_id* is not specified. Identifier of the sent "
"message"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_game_high_scores.GetGameHighScores.inline_message_id:1
#: of
msgid ""
"Required if *chat_id* and *message_id* are not specified. Identifier of "
"the inline message"
msgstr ""
#: ../../api/methods/get_game_high_scores.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_game_high_scores.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_game_high_scores.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_game_high_scores.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_game_high_scores.rst:29
msgid ":code:`from aiogram.methods.get_game_high_scores import GetGameHighScores`"
msgstr ""
#: ../../api/methods/get_game_high_scores.rst:30
msgid "alias: :code:`from aiogram.methods import GetGameHighScores`"
msgstr ""
#: ../../api/methods/get_game_high_scores.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,65 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_me.rst:3
msgid "getMe"
msgstr ""
#: ../../api/methods/get_me.rst:5
msgid "Returns: :obj:`User`"
msgstr ""
#: aiogram.methods.get_me.GetMe:1 of
msgid ""
"A simple method for testing your bot's authentication token. Requires no "
"parameters. Returns basic information about the bot in form of a "
":class:`aiogram.types.user.User` object."
msgstr ""
#: aiogram.methods.get_me.GetMe:3 of
msgid "Source: https://core.telegram.org/bots/api#getme"
msgstr ""
#: ../../api/methods/get_me.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_me.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_me.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_me.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_me.rst:29
msgid ":code:`from aiogram.methods.get_me import GetMe`"
msgstr ""
#: ../../api/methods/get_me.rst:30
msgid "alias: :code:`from aiogram.methods import GetMe`"
msgstr ""
#: ../../api/methods/get_me.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,77 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_my_commands.rst:3
msgid "getMyCommands"
msgstr ""
#: ../../api/methods/get_my_commands.rst:5
msgid "Returns: :obj:`List[BotCommand]`"
msgstr ""
#: aiogram.methods.get_my_commands.GetMyCommands:1 of
msgid ""
"Use this method to get the current list of the bot's commands for the "
"given scope and user language. Returns an Array of "
":class:`aiogram.types.bot_command.BotCommand` objects. If commands aren't"
" set, an empty list is returned."
msgstr ""
#: aiogram.methods.get_my_commands.GetMyCommands:3 of
msgid "Source: https://core.telegram.org/bots/api#getmycommands"
msgstr ""
#: ../../docstring aiogram.methods.get_my_commands.GetMyCommands.scope:1 of
msgid ""
"A JSON-serialized object, describing scope of users. Defaults to "
":class:`aiogram.types.bot_command_scope_default.BotCommandScopeDefault`."
msgstr ""
#: ../../docstring
#: aiogram.methods.get_my_commands.GetMyCommands.language_code:1 of
msgid "A two-letter ISO 639-1 language code or an empty string"
msgstr ""
#: ../../api/methods/get_my_commands.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_my_commands.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_my_commands.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_my_commands.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_my_commands.rst:29
msgid ":code:`from aiogram.methods.get_my_commands import GetMyCommands`"
msgstr ""
#: ../../api/methods/get_my_commands.rst:30
msgid "alias: :code:`from aiogram.methods import GetMyCommands`"
msgstr ""
#: ../../api/methods/get_my_commands.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,79 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_my_default_administrator_rights.rst:3
msgid "getMyDefaultAdministratorRights"
msgstr ""
#: ../../api/methods/get_my_default_administrator_rights.rst:5
msgid "Returns: :obj:`ChatAdministratorRights`"
msgstr ""
#: aiogram.methods.get_my_default_administrator_rights.GetMyDefaultAdministratorRights:1
#: of
msgid ""
"Use this method to get the current default administrator rights of the "
"bot. Returns "
":class:`aiogram.types.chat_administrator_rights.ChatAdministratorRights` "
"on success."
msgstr ""
#: aiogram.methods.get_my_default_administrator_rights.GetMyDefaultAdministratorRights:3
#: of
msgid "Source: https://core.telegram.org/bots/api#getmydefaultadministratorrights"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_my_default_administrator_rights.GetMyDefaultAdministratorRights.for_channels:1
#: of
msgid ""
"Pass :code:`True` to get default administrator rights of the bot in "
"channels. Otherwise, default administrator rights of the bot for groups "
"and supergroups will be returned."
msgstr ""
#: ../../api/methods/get_my_default_administrator_rights.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_my_default_administrator_rights.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_my_default_administrator_rights.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_my_default_administrator_rights.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_my_default_administrator_rights.rst:29
msgid ""
":code:`from aiogram.methods.get_my_default_administrator_rights import "
"GetMyDefaultAdministratorRights`"
msgstr ""
#: ../../api/methods/get_my_default_administrator_rights.rst:30
msgid "alias: :code:`from aiogram.methods import GetMyDefaultAdministratorRights`"
msgstr ""
#: ../../api/methods/get_my_default_administrator_rights.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,68 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_sticker_set.rst:3
msgid "getStickerSet"
msgstr ""
#: ../../api/methods/get_sticker_set.rst:5
msgid "Returns: :obj:`StickerSet`"
msgstr ""
#: aiogram.methods.get_sticker_set.GetStickerSet:1 of
msgid ""
"Use this method to get a sticker set. On success, a "
":class:`aiogram.types.sticker_set.StickerSet` object is returned."
msgstr ""
#: aiogram.methods.get_sticker_set.GetStickerSet:3 of
msgid "Source: https://core.telegram.org/bots/api#getstickerset"
msgstr ""
#: ../../docstring aiogram.methods.get_sticker_set.GetStickerSet.name:1 of
msgid "Name of the sticker set"
msgstr ""
#: ../../api/methods/get_sticker_set.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_sticker_set.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_sticker_set.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_sticker_set.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_sticker_set.rst:29
msgid ":code:`from aiogram.methods.get_sticker_set import GetStickerSet`"
msgstr ""
#: ../../api/methods/get_sticker_set.rst:30
msgid "alias: :code:`from aiogram.methods import GetStickerSet`"
msgstr ""
#: ../../api/methods/get_sticker_set.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,115 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_updates.rst:3
msgid "getUpdates"
msgstr ""
#: ../../api/methods/get_updates.rst:5
msgid "Returns: :obj:`List[Update]`"
msgstr ""
#: aiogram.methods.get_updates.GetUpdates:1 of
msgid ""
"Use this method to receive incoming updates using long polling (`wiki "
"<https://en.wikipedia.org/wiki/Push_technology#Long_polling>`_). Returns "
"an Array of :class:`aiogram.types.update.Update` objects."
msgstr ""
#: aiogram.methods.get_updates.GetUpdates:3 of
msgid "**Notes**"
msgstr ""
#: aiogram.methods.get_updates.GetUpdates:5 of
msgid "**1.** This method will not work if an outgoing webhook is set up."
msgstr ""
#: aiogram.methods.get_updates.GetUpdates:7 of
msgid ""
"**2.** In order to avoid getting duplicate updates, recalculate *offset* "
"after each server response."
msgstr ""
#: aiogram.methods.get_updates.GetUpdates:9 of
msgid "Source: https://core.telegram.org/bots/api#getupdates"
msgstr ""
#: ../../docstring aiogram.methods.get_updates.GetUpdates.offset:1 of
msgid ""
"Identifier of the first update to be returned. Must be greater by one "
"than the highest among the identifiers of previously received updates. By"
" default, updates starting with the earliest unconfirmed update are "
"returned. An update is considered confirmed as soon as "
":class:`aiogram.methods.get_updates.GetUpdates` is called with an "
"*offset* higher than its *update_id*. The negative offset can be "
"specified to retrieve updates starting from *-offset* update from the end"
" of the updates queue. All previous updates will forgotten."
msgstr ""
#: ../../docstring aiogram.methods.get_updates.GetUpdates.limit:1 of
msgid ""
"Limits the number of updates to be retrieved. Values between 1-100 are "
"accepted. Defaults to 100."
msgstr ""
#: ../../docstring aiogram.methods.get_updates.GetUpdates.timeout:1 of
msgid ""
"Timeout in seconds for long polling. Defaults to 0, i.e. usual short "
"polling. Should be positive, short polling should be used for testing "
"purposes only."
msgstr ""
#: ../../docstring aiogram.methods.get_updates.GetUpdates.allowed_updates:1 of
msgid ""
"A JSON-serialized list of the update types you want your bot to receive. "
"For example, specify ['message', 'edited_channel_post', 'callback_query']"
" to only receive updates of these types. See "
":class:`aiogram.types.update.Update` for a complete list of available "
"update types. Specify an empty list to receive all update types except "
"*chat_member* (default). If not specified, the previous setting will be "
"used."
msgstr ""
#: ../../api/methods/get_updates.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_updates.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_updates.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_updates.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_updates.rst:29
msgid ":code:`from aiogram.methods.get_updates import GetUpdates`"
msgstr ""
#: ../../api/methods/get_updates.rst:30
msgid "alias: :code:`from aiogram.methods import GetUpdates`"
msgstr ""
#: ../../api/methods/get_updates.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,85 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_user_profile_photos.rst:3
msgid "getUserProfilePhotos"
msgstr ""
#: ../../api/methods/get_user_profile_photos.rst:5
msgid "Returns: :obj:`UserProfilePhotos`"
msgstr ""
#: aiogram.methods.get_user_profile_photos.GetUserProfilePhotos:1 of
msgid ""
"Use this method to get a list of profile pictures for a user. Returns a "
":class:`aiogram.types.user_profile_photos.UserProfilePhotos` object."
msgstr ""
#: aiogram.methods.get_user_profile_photos.GetUserProfilePhotos:3 of
msgid "Source: https://core.telegram.org/bots/api#getuserprofilephotos"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_user_profile_photos.GetUserProfilePhotos.user_id:1 of
msgid "Unique identifier of the target user"
msgstr ""
#: ../../docstring
#: aiogram.methods.get_user_profile_photos.GetUserProfilePhotos.offset:1 of
msgid ""
"Sequential number of the first photo to be returned. By default, all "
"photos are returned."
msgstr ""
#: ../../docstring
#: aiogram.methods.get_user_profile_photos.GetUserProfilePhotos.limit:1 of
msgid ""
"Limits the number of photos to be retrieved. Values between 1-100 are "
"accepted. Defaults to 100."
msgstr ""
#: ../../api/methods/get_user_profile_photos.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_user_profile_photos.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_user_profile_photos.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_user_profile_photos.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_user_profile_photos.rst:29
msgid ""
":code:`from aiogram.methods.get_user_profile_photos import "
"GetUserProfilePhotos`"
msgstr ""
#: ../../api/methods/get_user_profile_photos.rst:30
msgid "alias: :code:`from aiogram.methods import GetUserProfilePhotos`"
msgstr ""
#: ../../api/methods/get_user_profile_photos.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,67 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/get_webhook_info.rst:3
msgid "getWebhookInfo"
msgstr ""
#: ../../api/methods/get_webhook_info.rst:5
msgid "Returns: :obj:`WebhookInfo`"
msgstr ""
#: aiogram.methods.get_webhook_info.GetWebhookInfo:1 of
msgid ""
"Use this method to get current webhook status. Requires no parameters. On"
" success, returns a :class:`aiogram.types.webhook_info.WebhookInfo` "
"object. If the bot is using "
":class:`aiogram.methods.get_updates.GetUpdates`, will return an object "
"with the *url* field empty."
msgstr ""
#: aiogram.methods.get_webhook_info.GetWebhookInfo:3 of
msgid "Source: https://core.telegram.org/bots/api#getwebhookinfo"
msgstr ""
#: ../../api/methods/get_webhook_info.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/get_webhook_info.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/get_webhook_info.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/get_webhook_info.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/get_webhook_info.rst:29
msgid ":code:`from aiogram.methods.get_webhook_info import GetWebhookInfo`"
msgstr ""
#: ../../api/methods/get_webhook_info.rst:30
msgid "alias: :code:`from aiogram.methods import GetWebhookInfo`"
msgstr ""
#: ../../api/methods/get_webhook_info.rst:33
msgid "With specific bot"
msgstr ""

View file

@ -0,0 +1,58 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/index.rst:3
msgid "Methods"
msgstr ""
#: ../../api/methods/index.rst:5
msgid "Here is list of all available API methods:"
msgstr ""
#: ../../api/methods/index.rst:10
msgid "Getting updates"
msgstr ""
#: ../../api/methods/index.rst:22
msgid "Available methods"
msgstr ""
#: ../../api/methods/index.rst:91
msgid "Updating messages"
msgstr ""
#: ../../api/methods/index.rst:104
msgid "Stickers"
msgstr ""
#: ../../api/methods/index.rst:120
msgid "Inline mode"
msgstr ""
#: ../../api/methods/index.rst:129
msgid "Payments"
msgstr ""
#: ../../api/methods/index.rst:140
msgid "Telegram Passport"
msgstr ""
#: ../../api/methods/index.rst:148
msgid "Games"
msgstr ""

View file

@ -0,0 +1,100 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/kick_chat_member.rst:3
msgid "kickChatMember"
msgstr ""
#: ../../api/methods/kick_chat_member.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.kick_chat_member.KickChatMember:5 of
msgid ""
"Use this method to ban a user in a group, a supergroup or a channel. In "
"the case of supergroups and channels, the user will not be able to return"
" to the chat on their own using invite links, etc., unless `unbanned "
"<https://core.telegram.org/bots/api#unbanchatmember>`_ first. The bot "
"must be an administrator in the chat for this to work and must have the "
"appropriate administrator rights. Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.kick_chat_member.KickChatMember:7 of
msgid "Source: https://core.telegram.org/bots/api#banchatmember"
msgstr ""
#: ../../docstring aiogram.methods.kick_chat_member.KickChatMember.chat_id:1 of
msgid ""
"Unique identifier for the target group or username of the target "
"supergroup or channel (in the format :code:`@channelusername`)"
msgstr ""
#: ../../docstring aiogram.methods.kick_chat_member.KickChatMember.user_id:1 of
msgid "Unique identifier of the target user"
msgstr ""
#: ../../docstring aiogram.methods.kick_chat_member.KickChatMember.until_date:1
#: of
msgid ""
"Date when the user will be unbanned, unix time. If user is banned for "
"more than 366 days or less than 30 seconds from the current time they are"
" considered to be banned forever. Applied for supergroups and channels "
"only."
msgstr ""
#: ../../docstring
#: aiogram.methods.kick_chat_member.KickChatMember.revoke_messages:1 of
msgid ""
"Pass :code:`True` to delete all messages from the chat for the user that "
"is being removed. If :code:`False`, the user will be able to see messages"
" in the group that were sent before the user was removed. Always "
":code:`True` for supergroups and channels."
msgstr ""
#: ../../api/methods/kick_chat_member.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/kick_chat_member.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/kick_chat_member.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/kick_chat_member.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/kick_chat_member.rst:29
msgid ":code:`from aiogram.methods.kick_chat_member import KickChatMember`"
msgstr ""
#: ../../api/methods/kick_chat_member.rst:30
msgid "alias: :code:`from aiogram.methods import KickChatMember`"
msgstr ""
#: ../../api/methods/kick_chat_member.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/kick_chat_member.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

View file

@ -0,0 +1,74 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2022, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
#: ../../api/methods/leave_chat.rst:3
msgid "leaveChat"
msgstr ""
#: ../../api/methods/leave_chat.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.leave_chat.LeaveChat:1 of
msgid ""
"Use this method for your bot to leave a group, supergroup or channel. "
"Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.leave_chat.LeaveChat:3 of
msgid "Source: https://core.telegram.org/bots/api#leavechat"
msgstr ""
#: ../../docstring aiogram.methods.leave_chat.LeaveChat.chat_id:1 of
msgid ""
"Unique identifier for the target chat or username of the target "
"supergroup or channel (in the format :code:`@channelusername`)"
msgstr ""
#: ../../api/methods/leave_chat.rst:14
msgid "Usage"
msgstr ""
#: ../../api/methods/leave_chat.rst:17
msgid "As bot method"
msgstr ""
#: ../../api/methods/leave_chat.rst:25
msgid "Method as object"
msgstr ""
#: ../../api/methods/leave_chat.rst:27
msgid "Imports:"
msgstr ""
#: ../../api/methods/leave_chat.rst:29
msgid ":code:`from aiogram.methods.leave_chat import LeaveChat`"
msgstr ""
#: ../../api/methods/leave_chat.rst:30
msgid "alias: :code:`from aiogram.methods import LeaveChat`"
msgstr ""
#: ../../api/methods/leave_chat.rst:33
msgid "With specific bot"
msgstr ""
#: ../../api/methods/leave_chat.rst:40
msgid "As reply into Webhook in handler"
msgstr ""

Some files were not shown because too many files have changed in this diff Show more