Commit Graph

1310 Commits

Author SHA1 Message Date
Dan
b5c6db6db0 Refactor project and move errors namespace out from pyrogram.api 2019-03-25 11:23:45 +01:00
Dan
066633ce45 Move dispatcher.py inside ext folder 2019-03-25 09:45:37 +01:00
Dan
ce0173e7cd Add support for hidden users in forwarded messages 2019-03-24 18:51:04 +01:00
Dan
4b7c6810c0 Make get_sticker_set_name "private" with a leading underscore _ 2019-03-22 13:33:47 +01:00
Dan
5edd971118 Update docs to use bot_token parameter 2019-03-22 12:39:15 +01:00
Dan
27666ec174 Small docs fixes 2019-03-22 12:14:31 +01:00
Dan
f0138ce555 Fix Inline buttons parsing 2019-03-22 11:58:49 +01:00
Dan
921800f902 Clean up docstrings 2019-03-22 11:53:25 +01:00
Dan
bc9f902376 Clean up inline-mode 2019-03-22 11:35:35 +01:00
Dan
fede74398c Fix inline-mode branch breaking after many commits from develop 2019-03-21 18:37:00 +01:00
Dan
acbbfabb27 Merge branch 'develop' into inline-mode
# Conflicts:
#	compiler/api/compiler.py
#	compiler/error/source/400_BAD_REQUEST.tsv
#	pyrogram/__init__.py
#	pyrogram/client/dispatcher/dispatcher.py
#	pyrogram/client/ext/utils.py
#	pyrogram/client/methods/bots/__init__.py
#	pyrogram/client/types/__init__.py
2019-03-21 17:40:49 +01:00
Dan
afcde95b30 Fix parsing ChannelForbidden; it doesn't have default permissions 2019-03-21 17:03:35 +01:00
Dan
41729cbdda Fix argument not passed with name 2019-03-21 14:08:09 +01:00
Dan
159090483f Update style 2019-03-21 14:04:46 +01:00
bakatrouble
081b9b280a Add ability to forward messages as copies (#227)
* Add ability to forward messages as copies

* Add Messages.forward() method

* Update and clean up code
2019-03-21 13:53:07 +01:00
Eric Solinas
ac591cf3c7 Add more Message convenience methods (#233)
* Added convenience methods
message.reply_animation
message.reply_audio
message.reply_cached_media
message.reply_chat_action
message.reply_contact
message.reply_document
message.reply_game
message.reply_inline_bot_result
message.reply_location
message.reply_media_group
message.reply_photo
message.reply_poll
message.reply_sticker
message.reply_venue
message.reply_video
message.reply_video_note
message.reply_voice
message.edit_caption
message.edit_media
message.edit_reply_markup
message.pin

fixed send_document docstrings while doing so
uniformed function declaration of send_poll

* Update style and small fixes
2019-03-20 15:44:20 +01:00
bakatrouble
5aa93b8287 Show TOS on signup just once while program is running (#231) 2019-03-20 14:20:38 +01:00
Dan
3e18945f3c Reformat code 2019-03-16 19:23:23 +01:00
Dan
9f26ac9cbe Merge branch 'develop' into __slots__ 2019-03-16 17:51:48 +01:00
Dan
def3bdaa63 Reformat code 2019-03-16 17:51:37 +01:00
Dan
34b51b6481 Force keyword arguments for all TL types 2019-03-16 16:53:52 +01:00
Dan
e0f1f6aaeb Add __slots__ to every single Pyrogram types 2019-03-16 16:15:56 +01:00
Dan
ef9ed31589 Add __slots__ to PyrogramType and Update types 2019-03-16 16:15:56 +01:00
Dan
ad42b4c236 Add restrict_chat method 2019-03-13 14:48:55 +01:00
Dan
0c8b5f02fc Make restrict_chat_member return Chat instead of a simple boolean 2019-03-13 14:48:30 +01:00
Dan
b01caf10a9 Rename default_permissions to just permissions 2019-03-13 14:47:39 +01:00
Dan
5be5446a77 Update restrict_chat_member with new permissions 2019-03-13 13:58:57 +01:00
Dan
b6038c4f2e Update Chat and ChatPermissions to accommodate default chat permissions 2019-03-13 13:02:40 +01:00
Dan
8c9e5e6753 Fix PhotoSize parsing 2019-03-13 12:14:08 +01:00
Dan
a0e48572cb Merge branch 'develop' into layer-95 2019-03-13 10:05:31 +01:00
Dan
90b959555d Fix flood waits generated when iterating over basic chat members 2019-03-12 16:46:54 +01:00
Dan
b3ef53a29a Add send_cached_media method 2019-03-11 21:26:07 +01:00
Dan
a4ea3f768c Fix get_chat_member not working when passing "me" in basic groups 2019-03-04 12:56:47 +01:00
Dan
64775f5209 Fix "ModuleNotFoundError is not defined" error for Python <3.6 2019-03-04 12:50:42 +01:00
Dan
ffa0da5800 Merge branch 'develop' into layer-95
# Conflicts:
#	pyrogram/__init__.py
2019-03-01 18:38:27 +01:00
bakatrouble
f84f9ec4df Add bot_token argument (#221)
* Add bot_token argument (closes #123)

* Make session_name docs more readable and detailed

* Explicitely set is_bot=False
2019-03-01 18:30:39 +01:00
bakatrouble
87c4d08d9c client.join_chat() now returns pyrogram.Chat instead of MTProto Update (#206)
* client.join_chat() now returns pyrogram.Chat instead of MTProto Update

* Do not use Chat._parse_mtproto_chat() method

* Update chat.py

Rename _parse_mtproto_chat to a generic _parse_chat_chat
Hint about its current usage (none).
2019-03-01 18:28:46 +01:00
bakatrouble
fda25f6534 Add client.set_username() method (#208)
* Add client.set_username() method

* Rename set_username() to update_user_username(); allow None as username

* Add client.update_chat_username() method

* Update update_chat_username.py

* Update update_user_username.py

Rename update_user_username to update_username
Add more details in docstrings
Fix style

* Rename update_user_username.py to update_username.py

* Update __init__.py

* Update 400_BAD_REQUEST.tsv
2019-03-01 18:06:17 +01:00
Dan
5294c21e97 Automatically coerce any text to string for keyboard buttons 2019-03-01 16:04:21 +01:00
bakatrouble
b0c011c70c Fix plugins import on windows (#223)
Fixes #217
2019-02-27 22:27:50 +01:00
Dan
50cff068a0 Fix send_* methods sending the incorrect Telegram media message type
This makes Pyrogram consistent with the official Bot API behaviour.
2019-02-12 20:29:05 +01:00
23rd
69f347ddec Fixed loss of thumbnails after media editing. (#216) 2019-02-11 11:07:02 +01:00
Dan
23a40a45ca Make get_contacts return a list of User objects 2019-02-06 11:28:57 +01:00
Dan
712b390f77 Add a retry mechanism when uploading chunks 2019-02-05 17:10:00 +01:00
Dan
a2263ad8ce Make send_media_group return the new Messages object 2019-02-05 11:50:32 +01:00
Dan
6109129f73 Reword some filter docstrings to better explain their usages 2019-02-04 18:23:40 +01:00
Dan
a6dbed6dfb Add a way to continue the update propagation within a group
Add continue_propagation() method and ContinuePropagation exception
Closes #212
2019-02-04 12:33:54 +01:00
Dan
ccecbd6a50 Merge branch 'raw-updates-swallowing' into develop 2019-02-04 11:47:31 +01:00
Dan
392fea6e32 Refactor Dispatcher's worker
Closes #211
2019-02-04 11:47:21 +01:00
Dan
429cfd0882 Move the check method into Handler superclass 2019-02-04 10:35:00 +01:00
Dan
249e405339 Update API schema to Layer 95 2019-02-03 11:03:11 +01:00
Dan
c40f061d9a Fix CallbackQuery docstrings 2019-02-02 19:01:35 +01:00
Dan
f0d059da07 First working (and ugly) way for fixing raw updates being swallowed 2019-01-30 17:16:50 +01:00
Dan
628ddd4a25 Update Client's docstrings 2019-01-27 11:24:23 +01:00
Dan
67a35f8c7e Handle get_history flood waits
It's likely to get triggered when using iter_history (every ~3k msgs)
2019-01-27 11:13:10 +01:00
Dan
a8a6f53e2d Fix the configuration load process breaking in case of no plugins 2019-01-26 13:01:44 +01:00
Dan
66ed6d53e3 Merge branch 'smart-plugins-enhancements' into develop 2019-01-25 09:22:06 +01:00
Dan
68509638c1 Merge branch 'develop' into layer-93 2019-01-24 17:21:57 +01:00
Dan
44deabf399 Update iter_chat_members efficiency 2019-01-24 17:21:41 +01:00
Dan
56e7bc9962 Update kick*, promote*, restrict* and unban_chat_member methods
For Layer 93
2019-01-24 17:20:29 +01:00
Dan
e9b1730318 Update ChatMember to use the new ChatPermissions type 2019-01-24 17:05:15 +01:00
Dan
1472b8236d Add ChatPermissions type 2019-01-24 17:03:51 +01:00
Dan
e99f86b69f Update media thumbs parsing for L93 2019-01-21 18:45:52 +01:00
Dan
cb0b8ebeae Fix Chat sticker_set_name 2019-01-21 18:35:11 +01:00
Dan
c0a5b0a2c3 Fix kicked members reporting "left" as status 2019-01-21 16:56:22 +01:00
Dan
b919ed8242 Add restricted_by attribute in ChatMember (#204) 2019-01-21 16:53:54 +01:00
Dan
f0c8f65e9d Add promoted_by attribute in ChatMember (#204) 2019-01-21 16:41:56 +01:00
Dan
16b7203ee9 Add invite_by attribute in ChatMember (#204) 2019-01-21 16:34:46 +01:00
Dan
a57ee7b333 Accommodate parsing of invited_by attribute of ChatMember (#204) 2019-01-21 16:33:33 +01:00
Dan
d6a1503344 Add "date" attribute to ChatMember (#204) 2019-01-21 15:38:36 +01:00
Dan
76d4e4f60e Fix "left" status not being parsed in ChatMember (#204) 2019-01-21 15:36:54 +01:00
Dan
be013de4d4 Fix plugins load via Client parameter 2019-01-16 20:25:48 +01:00
Dan
6ec3b12aeb Smart plugins enhancements 2019-01-16 15:54:48 +01:00
Dan
3d16a715ad Fix file using wrong line separator 2019-01-16 15:46:46 +01:00
Dan
6df7788379 Enhance proxy settings
- Allow proxy settings to omit "enabled" key
- Allow setting proxy to None in order to disable it
2019-01-16 13:10:01 +01:00
Dan
4e02cd23a8 Make all send_* methods dealing with files aware of StopTransmission 2019-01-11 14:13:23 +01:00
Dan
2791600926 Hint about the returned value in case of stopped downloads 2019-01-11 14:12:53 +01:00
Dan
b37d4dc7ec Make get_file and save_file handle StopTransmission errors 2019-01-11 14:03:16 +01:00
Dan
6b63e88de7 Add Client.stop_transmission() method
As a wrapper for raise StopTransmission
2019-01-11 14:02:40 +01:00
Dan
c28b9f9a2c Add StopTransmission custom exception
Useful for stopping up/downloads after they started
2019-01-11 14:00:03 +01:00
Dan
d5ed47f4e9 Fix Message.download() not working when using the progress callback 2019-01-11 13:59:18 +01:00
Dan
200ed844fe Fix first_name and last_name not being called if they are callable 2019-01-11 13:02:19 +01:00
Dan
161ab79eb3 Add Filters.media_group for photos or videos being part of an album. 2019-01-11 12:51:01 +01:00
Dan
1d8fd0b836 Make Filters.regex work on message captions too 2019-01-11 12:46:41 +01:00
Dan
07276e31b9 Add restart method 2019-01-11 12:36:37 +01:00
Dan
19b8f648d2 Fix bad behaviours for Python <3.6
Pyrogram was relying on dict keys being "ordered"
(keys keeping insertion order).
2019-01-11 12:31:18 +01:00
Dan
66f70450aa Allow phone_number, phone_code and password to also be functions
Also add recovery_code
References #163
2019-01-08 14:28:52 +01:00
Dan
8928ca3433 Rename game_score to game_high_score 2019-01-07 22:50:54 +01:00
Dan
ee472329a2 Move get_game_high_scores method into bots folder 2019-01-07 22:35:17 +01:00
Dan
dc737ab7bb Add GameHighScore and GameHighScores types 2019-01-07 22:30:33 +01:00
Dan
633fefe178 Add get_game_high_scores method 2019-01-07 22:28:41 +01:00
Dan
65bdf31ce1 Move send_game and set_game_score into bots folder 2019-01-07 22:26:52 +01:00
Dan
33e83bf635 Update set_game_score docstrings 2019-01-07 22:19:21 +01:00
Dan
9771be9c2a Add send_game and set_game_score methods 2019-01-07 21:49:58 +01:00
Dan
1bbf048b7a Remove duplicated references 2019-01-07 21:49:25 +01:00
Dan
7ae9a065b8 Update examples 2019-01-07 10:34:38 +01:00
Dan
491b96c9f6 Use "recent" filter for up to 10k members 2019-01-07 10:00:42 +01:00
Dan
6451d599b2 Fix typo 2019-01-07 08:30:40 +01:00
Dan
bb27633da6 Add game and game_score in Message 2019-01-05 23:13:47 +01:00
Dan
50e5692eae Add Filters.game and Filters.game_score. Also fix Filters.animation name 2019-01-05 23:12:59 +01:00
Dan
d5303285d6 Add support for Game inline buttons. Add CallbackGame type 2019-01-05 23:12:29 +01:00
Dan
7d061a1b5c Add Game type 2019-01-05 23:11:39 +01:00
Dan
a50dba2b4c Add close_poll method 2019-01-05 14:44:10 +01:00
Dan
7e354b12bf Fix kick_chat_member docstrings and return type 2019-01-04 23:15:57 +01:00
Dan
b8a3d02eef Fix get_messages return type 2019-01-04 23:12:06 +01:00
Dan
153439ac88 Add iter_chat_members method. Reference #170 2019-01-04 17:13:44 +01:00
Dan
d7e3397050 Update get_chat_members docstrings 2019-01-04 16:59:36 +01:00
Dan
e1cac13f0d Fix get_dialogs docstrings 2019-01-04 16:58:57 +01:00
Dan
948f2b44ed Add iter_dialogs method. Reference #170 2019-01-04 16:10:34 +01:00
Dan
4d1d70082b Sleep in case of get_dialogs flood waits 2019-01-04 16:08:05 +01:00
Dan
8628d3a56d Add iter_history method
For #170
2019-01-04 15:37:08 +01:00
Dan
fbc18cace0 Update get_history docstrings 2019-01-04 15:36:43 +01:00
Dan
04542dbddf Make parsing multiple Messages more efficient
This is achieved by not calling get_messages for each single reply.
Instead, all the available replies are retrieved in one request only.
2019-01-04 14:42:39 +01:00
Dan
7e3513f8ee Wait in case of flood errors in get_messages 2019-01-04 14:38:08 +01:00
Dan
fe89974523 Add get_history signature to BaseClient
Also make other method parameters generic
2019-01-04 14:37:26 +01:00
Dan
fe4e8c5a42 Rename get_history's "reversed" parameter to "reverse"
It was colliding with the built-in "reversed" function
2019-01-04 14:36:42 +01:00
Dan
36f987e979 Add Filters.me
Useful to filter messages coming from the current running user.
Does the same thing as Filters.user("me")
2019-01-03 20:58:38 +01:00
Dan
d69a93d253 Automatically cast message and caption arguments to str 2019-01-03 20:53:48 +01:00
Dan
4f6990d735 Add takeout parameter in Client
This lets the client use a takeout session instead of a normal one.
Takeout sessions are useful for exporting Telegram data. Methods invoked
inside a takeout session are less prone to throw FloodWait exceptions.
2019-01-03 12:20:42 +01:00
Dan
b53ba81a6a Add no_updates parameter in Client
Useful to completely disable incoming updates for batch programs
2019-01-03 11:13:24 +01:00
Dan
372bbabe28 Make invite links of public channels work with get_chat 2019-01-02 22:39:16 +01:00
Dan
1f8f313398 Fix broken ChatMember parser working on already parsed Users 2019-01-02 19:13:01 +01:00
Dan
1960b00280 Add a way to stop iterating through handlers
Closes #125
2019-01-02 18:11:22 +01:00
Dan
f440b1f969
Add missing colon 2019-01-02 17:27:40 +01:00
Dan
4d7b1bafac Update copyright year 2019-01-01 12:36:16 +01:00
Dan
21dbbc3f0b Fix style parsers randomly returning "unsorted" dicts.
This is due to Python <3.6 having "unsorted" dicts. Dicts are inherently
unsorted, but starting from Python 3.6 they keep the order in which the
keys are inserted (useful for unpacking)
2018-12-31 17:13:50 +01:00
Dan
490b8bf579 Fix get_message getting infinite replies 2018-12-31 12:02:15 +01:00
Dan
5dcc19cfb3 Move download_media into messages and media namespace 2018-12-28 15:18:01 +01:00
Dan
64ec26850e Document save_file 2018-12-28 15:16:46 +01:00
Dan
c907e8146a Allow get_chat to work with chat invite links 2018-12-28 14:34:47 +01:00
Dan
0e62b3472a Add get_chat_preview method and ChatPreview object 2018-12-28 14:26:00 +01:00
Dan
3814471af4 Change get_dialogs behaviour
It now accepts an offset_date instead of an offset_dialog
2018-12-27 23:56:45 +01:00
Dan
decaa9e7f0 Rename downwards to reversed 2018-12-27 23:55:56 +01:00
Dan
233e0920a2
Merge branch 'develop' into develop 2018-12-27 23:52:40 +01:00
Dan
1eee4b77e1 Pin/unpin_chat_message don't raise a ValueError anymore 2018-12-25 23:08:45 +01:00
Dan
7e4b96cfdf Suppress PyPep8Naming soft-warnings 2018-12-25 16:20:09 +01:00
Dan
d91acfe2ca Re-implement password-protected log-ins and support password recovery 2018-12-25 15:41:55 +01:00
Dan
fccadf526e Merge branch 'develop' into future
# Conflicts:
#	pyrogram/__init__.py
2018-12-25 14:36:59 +01:00
Dan
1e3612c781 Merge branch 'layer-85' into future
# Conflicts:
#	compiler/api/source/main_api.tl
#	pyrogram/client/methods/password/change_cloud_password.py
#	pyrogram/client/methods/password/enable_cloud_password.py
#	pyrogram/client/methods/password/remove_cloud_password.py
2018-12-25 14:34:56 +01:00
Dan
00e4e385aa Allow bots to message old chats even if they don't exist in the session 2018-12-24 22:31:45 +01:00
Dan
6e964b51b1 Type hint on_message decorator 2018-12-24 14:50:04 +01:00
Dan
098b06d1b7 Fix poll docstrings and vote_poll wrong attribute access 2018-12-24 14:32:53 +01:00
Dan
c833b3842a Put PollOption back in a separate file, its docstrings must be visible 2018-12-24 14:19:21 +01:00
Dan
c4280f017e Add hide_via parameter to send_inline_bot_result 2018-12-24 14:13:47 +01:00
Dan
a551f1fe1e Fix Filters.poll docstrings link to Poll type 2018-12-23 19:52:49 +01:00
Dan
1d676a76db Merge branch 'develop' into future 2018-12-23 19:51:54 +01:00
Dan
9fe04ff7cd Fix filter links to Objects 2018-12-23 19:51:45 +01:00
Dan
3fe7fb20be Document retract_vote 2018-12-23 17:06:34 +01:00
Dan
2994929903 Document Poll 2018-12-23 17:00:51 +01:00
Dan
03d6c49d92 Document send_poll method 2018-12-23 17:00:51 +01:00