Commit graph

313 commits

Author SHA1 Message Date
Alex Root Junior
62d4b9014c
Fix bot instance passing in Dispatcher startup (#1247)
Modified the Dispatcher to remove the "bot" key from workflow_data if found, prior to emitting startup in order to allow manual addition of "bot" to workflow data. This change was necessary as a bot instance is required to start polling, and therefore must be passed correctly. This logic is now tested in the 'test_start_polling' function. The change also includes an update to the changelog.
2023-08-06 01:14:26 +03:00
Alex Root Junior
90654ac0fa
Enhance keyboard utility, improved documentation page. (#1236)
* Enhance keyboard utility, improved documentation for this utility.

Updated the 'aiogram/utils/keyboard.py' file with new methods for integrating buttons and keyboard creation more seamlessly. Added functionality to create buttons from existing markup and attach another builder. This improvement aims to make the keyboard building process more user-friendly and flexible.

* Added changelog

* Cover by tests
2023-08-04 22:36:50 +03:00
Alex Root Junior
a7916c1103
Reworked InputFile sending (#1238)
* Reworked InputFile sending

* Added changelog
2023-08-02 21:41:07 +03:00
Alex Root Junior
faadc80460
Chat join request shortcuts (#1235)
* Add additional API message methods to ChatJoinRequest class

ChatJoinRequest now includes additional message methods including SendAnimation, SendAudio, SendContact, and many more. The changes are useful for sending various types of messages during chat join requests.

* Added changelog
2023-07-30 18:12:06 +03:00
Alex Root Junior
a1513ddb2d
Added shortcuts for ChatMemberUpdate event (#1234)
* Added shortcuts for ChatMemberUpdate event

* Added changelog
2023-07-30 17:29:45 +03:00
Alex Root Junior
2ecf9cefd7
Removed the use of the context instance (Bot.get_current) from all placements that were used previously. (#1230)
* Removed the use of the context instance (Bot.get_current) from all placements that were used previously.

* Fixed tests

* Added changelog

* Change category
2023-07-28 22:23:32 +03:00
Alex Root Junior
21351de335
Fixed #1217: Fixed union subtypes generation inside arrays of elements 2023-07-17 00:10:47 +03:00
Alex Root Junior
853b72f38d
Added possibility to use HashTag/CashTag elements without prefixing content, added sep: str argument to the as_line function. 2023-07-16 23:04:06 +03:00
Alex Root Junior
afeb659b82
Added test that prove previous fix 2023-07-16 22:49:18 +03:00
Alex Root Junior
74e00a30b1
"Add get_mounted_bot function and improve model comparison in tests"
In this commit, a new function `get_mounted_bot` was added to `context_controller.py` that returns the bot mounted in context. This function was needed to bypass the limitation in pydantic BaseModel's properties, which neither support computed fields nor serialization/validation.

Various tests were also updated to compare models using `model_dump_json()` method rather than comparing the models directly. This change provides more accurate comparisons by considering default values in the models.

Further, the dispatcher was adjusted to enforce update re-mounting if the mounted bot differs from the current update. This allows shortcuts to be used in the bot's current instance and ensures the correct propagation of the context to all the nested objects and attributes of Updates.
2023-07-16 22:46:45 +03:00
Alex Root Junior
31c11c31e0
Fixed subtypes and union types generation, new enums added (#1213)
* Fixed subtypes and union types generation, new enums added

* Added changes description
2023-07-11 23:39:54 +03:00
Alex Root Junior
a7b92bb050
PoC: Bot instance inside method shortcuts using pydantic Validation Context (#1210)
* PoC: Mount objects to the Bot instance, bind shortcuts to configured instance

* Fixe docstring of the bind method

* Pass Bot instance explicitly to the URLInputFile

* Added tests

* Added changelog

* Refactor aiogram client and update tests

Refactored base.py to improve code readability by separating response_type operation from model_validate(). Also, adjusted the parameters in URLInputFile() within test_input_file.py for better test coverage. Updated input_file.py to streamline read method and avoid unnecessary instantiation of Bot class. Lastly, adjusted typing in methods/base.py to enhance code clarity.

* Update changelog
2023-07-11 23:17:26 +03:00
Alex Root Junior
461e59bbdd
Update pydantic to V2 (#1202)
* Update pydantic, fix errors and warnings (all?)

* Fixed typehints

* Reformat code, removed unused imports

* Fixed typing extensions version compatibility

* Fixed coverage

* Describe changes

* Regen code
2023-07-02 15:07:19 +03:00
Alex Root Junior
066d16b522
#1186 Renamed USER_IN_THREAD to USER_IN_TOPIC 2023-07-01 21:53:34 +03:00
Alex Root Junior
d29b18da8c
#1191 Added possibility to pass custom headers to URLInputFile object (#1197) 2023-06-25 01:39:26 +03:00
sheldy
a890622e40
parameter secret_token (#1173)
* Added secret token validation
2023-06-25 00:40:04 +03:00
Alex Root Junior
5b20f81654
Formatting tools (#1172)
* Added base implementation of formatting utility

* Refactored and added docs

* Added changelog

* Coverage
2023-06-10 20:47:45 +03:00
Nikita
c418689dc1
Fix markdown spoiler (#1176)
* Fix spoiler

* added a explanation

* Updated the TestTextDecoration.test_apply_single_entity

---------

Co-authored-by: = <=>
2023-05-13 14:10:15 +03:00
Alex Root Junior
cf269e15f4
Added create_channel_bot_link function 2023-04-23 03:30:48 +03:00
Alex Root Junior
62a9f0cb6e
Removed Text filter (#1170)
* Removed Text filter

* Added changelog

* Clean docs

* Fixed pytz
2023-04-22 20:21:17 +03:00
Alex Root Junior
942ba0d520
Forum topic in FSM (#1161)
* Base implementation

* Added tests, fixed arguments priority

* Use `Optional[X]` instead of `X | None`

* Added changelog

* Added tests
2023-04-22 19:35:41 +03:00
Alex Root Junior
1538bc2e2d
Bot API 6.7 (#1168)
* Added 6.7 features

* Update after release

* Added tests

* Added changelog
2023-04-22 18:09:59 +03:00
Alex Root Junior
aad2de4324
Improve callback data serialization (#1163)
* Improve callback data serialization

* Added tests and changelog
2023-04-21 00:17:28 +03:00
Alex Root Junior
fb3076d40f
Fix compatibility with Python 3.8-3.9 (#1162)
* Try to fix compatibility with Python 3.8-3.9

* Added changelog
2023-04-21 00:17:06 +03:00
Aleksandr
8d2bf20fb8
Added missing FORUM_TOPIC_EDITED value to content_type property (#1160)
* Added missing FORUM_TOPIC_EDITED value to content_type property

* Added changelog to CHANGES

* Fixed aiogram/filters/magic_data.py:21:41: C416 Unnecessary `dict` comprehension (rewrite using `dict()`)

* Resolve  #1155: Different signature of startup/shutdown events on polling and webhooks  (#1156)

* Code refactor
- Use 'or' istead of 'A if A else B'
- Raise new error from catched error: raise Error from e

* Fixed signature of startup/shutdown events
- Include the **dispatcher.workflow_data as the handler arguments

* Update deep_linking basic examples (#1151)

* skip if current router does not have observer for custom event (#1147)

* skip if current router does not have observer for custom event

* Test custom event in router

* Feature changelog file

* fix style

* Change `InlineQueryResultType.MPEG` to more correct (#1146)

* Change `InlineQueryResultType.MPEG` to `InlineQueryResultType.MPEG4GIF`

* Change regexp for parse entities

* Use code generator to fix types

* Add changelog

* fix(docs): fix wrong page link in docs (#1154)

* storage cleanup (#1144)

* storage cleanup

* storage cleanup

* Update API docs

* Added tests

* Fix tests

---------

Co-authored-by: Alex Root Junior <jroot.junior@gmail.com>
Co-authored-by: Łukasz Tshipenchko <dev@zxc.sx>
Co-authored-by: Max Kotsiuruba <81016938+A5KET@users.noreply.github.com>
Co-authored-by: Andrey Tikhonov <andrey.tikhonov@quantori.com>
Co-authored-by: Desiders <47452083+Desiders@users.noreply.github.com>
Co-authored-by: Daniil <hum4noid@yandex.ru>
Co-authored-by: RootShinobi <111008396+RootShinobi@users.noreply.github.com>
2023-04-16 22:41:49 +03:00
RootShinobi
dbaf6fabcb
storage cleanup (#1144)
* storage cleanup

* storage cleanup
2023-04-08 18:01:11 +03:00
Andrey Tikhonov
268b7e759d
skip if current router does not have observer for custom event (#1147)
* skip if current router does not have observer for custom event

* Test custom event in router

* Feature changelog file

* fix style
2023-04-08 17:39:48 +03:00
Alex Root Junior
fea1b7b0a3
Reworked request builder (#1142)
* Reworked request builder

* Added more default values

* Update tests

* Fixed timestamp

* Fixed Py3.8 support

* Describe changes
2023-03-11 20:46:36 +02:00
Alex Root Junior
6570d0bab1
Bot API 6.6 (#1139)
* Added basic support of Bot API 6.6

* Update descriptions

* Added StickerFormat enum

* Bump version

* Refresh from docs

* Fixed CommandStart

* Fixed files uploading

* Cover new functionality

* Added changelog

* Update texts
2023-03-11 02:17:47 +02:00
Alex Root Junior
d0b7135ca6
Reworked graceful shutdown (#1124)
* Reworked graceful shutdown

* Remove special errors from polling process

* Update dependencies

* Coverage

* Added changelog
2023-02-18 15:46:28 +02:00
Dmitry Anfimov
184ee1fbf8
[3.x] Check status code when downloading file (#1079)
* Check status code when downloading file and raise an error if someting bad happends

* Style fixes

* Add doc

* Use "towncrier create <issue>.<type>" for creating file
2023-02-12 02:56:11 +02:00
Alex Root Junior
58868ec627
Added possibility to reply into webhook with files (#1120) 2023-02-12 02:00:42 +02:00
Alex Root Junior
84bc0e347b
Merge remote-tracking branch 'origin/dev-3.x' into dev-3.x 2023-02-12 01:27:39 +02:00
sheldy
bac90c8fa7
add new method for Router (#1117)
* add new method for Router

* add type hint, tests, changes file

* update tests

* Update aiogram/dispatcher/router.py

* Update tests/test_dispatcher/test_router.py

* Update router.py

---------

Co-authored-by: Alex Root Junior <jroot.junior@gmail.com>
2023-02-12 01:26:49 +02:00
Alex Root Junior
56097d6b53
Bump dependencies 2023-02-12 01:24:18 +02:00
Alex Root Junior
021ae5626f
Replaced error TypeError: TelegramEventObserver.__call__() got an unexpected keyword argument '<name>' with a more understandable (#1114)
* Explain why keyword filters is not supported

* Added changelog
2023-02-05 16:13:06 +02:00
Alex Root Junior
e59d4652bf
Added full support of Bot API 6.5 (#1112)
* Added full support of Bot API 6.5

* Shut up, linters (Fixed errors)

* Oops. Added lost files.

* Fixed tests

* Added changes description

* Update description from docs

* Fixed anchors

* Update Butcher

* Added danger zone to changelog

* Type
2023-02-04 19:53:32 +02:00
Alex
3428924d63
ignore_case fix for aiogram.filters.command.Command() (#1107)
* ignore_case fix

* Create 1106.bugfix.rst

* better fix, added tests

* Update 1106.bugfix.rst

* fix, attempt to satisfy the linter

* not on purpose, single quotes in tests
2023-02-04 19:52:36 +02:00
Alex Root Junior
f4ce4431f9
Migrate to hatchling (#1095)
* Migrate to hatchling instead of poetry, ruff instead of flake8

* Migrate to hatchling instead of poetry, ruff instead of flake8

* Update tests suite

* venv?

* -m venv?

* Change dependencies

* Remove venv

* Change mypy config

* Added changelog

* Mark uvloop incompatible with pypy

* Update release script

* Use internal caching for dependencies

* Re-disable cov branches

* Added contributing guide
2023-01-12 02:49:58 +02:00
Alex Root Junior
04ccb390d5
Callback answer feature (#1091)
* Added callback answer feature

* Fixed typehints and tests

* Make context manager in tests compatible with Python 3.8
2023-01-08 16:49:34 +02:00
Alex Root Junior
d8e943424a
Merge remote-tracking branch 'origin/dev-3.x' into dev-3.x 2023-01-07 22:36:09 +02:00
Alex Root Junior
730485e43a
Added full support of Bot API 6.4 (#1088)
* Remove warnings about pytest asyncio mode

* Update Bot API to 6.4

* Bump version

* Added changelog

* Update translations
2022-12-30 22:44:25 +02:00
Alex Root Junior
655b3a2d48
Remove warnings about pytest asyncio mode 2022-12-30 16:10:06 +02:00
Alex Root Junior
3ea73fbbbd
Add missing shortcuts, new enums, reworked old stuff (#1070)
* Render shortcuts

* Render docs

* Added enumerations

* Added docs

* Use enums, removed Helper

* Bump butcher

* Added InputMediaType enum

* Added MaskPositionPoint, InlineQueryResultType enums

* Update texts

* Added StickerType enum

* Cover tests

* Update docs

* Fixed imports

* Re-enabled all pre-commit hooks
2022-12-04 03:05:49 +02:00
Alex Root Junior
d034c1ba9f
Adding new code-generator (Butcher) (#1069)
* Re-generate types

* Re-generate methods (only attributes)

* Added enums

* Base init generator

* Added butcher configs

* Fixed tests, bump butcher

* Added changelog

* Added enum docs

* Added templates for docs index

* Re-generate bot class, remove deprecated methods
2022-11-21 01:06:55 +02:00
Alex Root Junior
b287551590
Bot API 6.3 (#1063)
* Added API changes

* Added changelog

* Oops. Move changelog

* Update tests

* Remove experimental

* Added message content type

* Update message aliases

* Update changes

* Update texts

* Bump version

* Remove versionadded badge
2022-11-06 14:28:21 +02:00
sheldy
b8cd06fd6f
add method for get user mention (#1049)
* add new method

* Create 1049.feature.rst

* update test_user

* after black and isort using

* after black and isort using

* adding new tests

* fix test

* update tests

* update test

* using create_tg_link function instead of new func

* Update user.py

* Update aiogram/types/user.py

Co-authored-by: Alex Root Junior <jroot.junior@gmail.com>
2022-11-02 22:40:19 +02:00
Alex Root Junior
6db3778c6f
Tests on Python 3.11 (#1044)
* Try to use Python 3.11

* Remove `asynctest` dependency

* Fixed aiofiles tests

* Added changelog
2022-10-26 22:21:04 +03:00
Alex Root Junior
5c3f442866
Reformat code 2022-10-22 01:02:56 +03:00
Danipulok
8b0ca520f3
Add missing Message methods (#1030)
* Add `Message.forward` method

* Add docs

* Add other methods

* Fix

* Add changes

* Fix lints

* Update CHANGES/1030.feature.rst

Co-authored-by: Alex Root Junior <jroot.junior@gmail.com>

Co-authored-by: Alex Root Junior <jroot.junior@gmail.com>
2022-10-22 00:29:29 +03:00