Commit Graph

2501 Commits

Author SHA1 Message Date
Dan
edaced35a7 Use base64.urlsafe_b64encode/decode instead of manually passing altchars 2019-06-19 16:07:22 +02:00
Dan
6cc9688e49 Implement FileStorage and MemoryStorage engines 2019-06-19 16:04:35 +02:00
Dan
6177abbfa4 Add Storage abstract class 2019-06-19 16:04:06 +02:00
Dan
682591ea8f Update Auth and Session to accommodate Storage Engines 2019-06-19 16:02:29 +02:00
Dan
d472d06c48 Merge branch 'develop' into session_storage 2019-06-19 15:54:52 +02:00
Dan
651b8d891d
Merge pull request #256 from ColinTheShark/develop
Add convenience methods to block and unblock Users
2019-06-17 14:43:26 +02:00
ColinShark
1fd31cac1e Add convenience methods to block and unblock Users 2019-06-17 14:34:49 +02:00
ColinShark
10de006cc5 Add returned object 2019-06-17 09:47:12 +02:00
Dan
142d5ab335 Merge branch 'develop' into session_storage
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/ext/base_client.py
#	pyrogram/client/ext/syncer.py
#	pyrogram/client/methods/contacts/get_contacts.py
2019-06-15 23:52:34 +02:00
Dan
80d8443be4 Fix script executions not working outside the current directory
Fixes #41
2019-06-15 23:02:31 +02:00
Dan
abc0e992cf Fix Sticker.set_name being treated as tuple/list-like when should in fact be a string
Yes, that little comma messed things up (again)
2019-06-15 17:59:28 +02:00
Dan
237e434e78 Merge branch 'develop' of https://github.com/pyrogram/pyrogram into develop 2019-06-15 17:59:12 +02:00
ColinShark
4492d9d20b Put italic in quotes, adapt text_mention (#254)
* Put italic in quotes, adapt text_mention

* Update message_entity.py
2019-06-15 13:55:50 +02:00
Dan
ef8f3bd6e1 Revert: CallbackQuery edit_* bound methods renamed to edit_message_* 2019-06-14 04:53:04 +02:00
Dan
61ed44ff5f Add edit_inline_* methods to deal with inline messages only 2019-06-14 04:52:05 +02:00
Dan
3ed1bb0d86 Rename CallbackQuery edit_* bound methods to edit_message_*
We are editing the message the callback query comes from, not the
callback query itself.
2019-06-14 03:57:12 +02:00
Dan
3ae77d55c7 Rename edit -> edit_text and reply -> reply_text bound methods 2019-06-14 02:52:01 +02:00
Dan
c485715db1 Small docstrings fixup 2019-06-14 02:47:17 +02:00
Dan
da4ff268a4 Add edit, edit_caption, edit_media and edit_reply_markup bound methods to the CallbackQuery type 2019-06-14 02:46:27 +02:00
Dan
22199b0fe5 Implement editing of messages sent via inline bots
- edit_message_text
- edit_message_caption
- edit_message_media
- edit_message_reply_markup
2019-06-14 02:15:33 +02:00
Dan
93082ce894 Reword get_user_dc docstrings 2019-06-12 13:43:28 +02:00
Dan
b86373d28c Improve get_history_count 2019-06-12 11:43:24 +02:00
Dan
df6e174b55 Fix InputPhoneContact docstring 2019-06-12 11:38:06 +02:00
Dan
4f2928e7b5 Improve get_profile_photos and get_profile_photos_count 2019-06-12 11:37:43 +02:00
Dan
a21858a262
Merge pull request #251 from pyrogram/types-revamp
Types revamp
2019-06-12 10:48:10 +02:00
Dan
684aef3ded Fix files downloaded with no file name 2019-06-11 21:12:00 +02:00
Dan
92625795ef Update develop version 2019-06-11 20:50:36 +02:00
Dan
83af58258c Fix download_media ignoring the file_name argument 2019-06-11 20:36:09 +02:00
Dan
fd0a40442a Fix plugins not getting reloaded properly when restarting a client 2019-06-11 18:31:38 +02:00
Dan
b9b50bad94 Fix get_users and get_contacts not returning pretty-printable lists 2019-06-11 16:46:10 +02:00
Dan
7baa00353d Add a FAQ about DC migration 2019-06-11 15:59:39 +02:00
Dan
1ee8487712 Merge branch 'develop' into types-revamp
# Conflicts:
#	pyrogram/client/methods/users/get_profile_photos.py
2019-06-11 14:45:21 +02:00
Dan
af08606087 Fix get_profile_photos not working when passing "me"/"self" as argument 2019-06-09 13:01:24 +02:00
Dan
6e6dd54d40 Add missing attributes to the Chat type 2019-06-08 19:55:40 +02:00
Dan
34616ebf61 Add .archive() and .unarchive() bound methods to User 2019-06-08 19:30:53 +02:00
Dan
6e3d8ca20b Add .archive() and .unarchive() bound methods to Chat 2019-06-08 19:28:47 +02:00
Dan
9b12e823b4 Fix Message bound methods' docstrings 2019-06-08 19:25:12 +02:00
Dan
5f3b7b97aa Add archive_chats and unarchive_chats methods 2019-06-08 19:15:19 +02:00
Dan
43493733c9 Rearrange code 2019-06-08 15:28:03 +02:00
Dan
94d90efc80 Rename section from "Keyboards" to "Bots & Keyboards" 2019-06-08 15:27:53 +02:00
Dan
a769fdfd20 Remove GameHighScores type 2019-06-08 15:16:51 +02:00
Dan
cfbc5298df Remove Messages type 2019-06-08 15:13:52 +02:00
Dan
797de058e8 Remove ProfilePhotos type 2019-06-08 14:09:16 +02:00
Dan
c8fd446cb6 Remove Dialogs type 2019-06-08 14:00:00 +02:00
Dan
2db2ca3283 Remove ChatMembers type 2019-06-08 13:50:17 +02:00
Dan
2e05c81a5c Update docs about Telegram data centers 2019-06-08 11:33:52 +02:00
Dan
fd3c8cf94f Merge develop -> asyncio 2019-06-07 19:26:27 +02:00
Dan
b46ffe1414 Update Pyrogram to v0.14.1 2019-06-07 18:53:45 +02:00
Dan
e63b915ec2 Fix trailing commas breaking older Python versions 2019-06-07 18:51:04 +02:00
Dan
c65e210c03 Fix FileData namedtuple using Python 3.7+ features 2019-06-07 18:48:34 +02:00
Dan
89e6f4137b Fix get_chat_member always returning self for basic groups 2019-06-07 18:00:00 +02:00
Dan
d95bbdf445 Update next develop version 2019-06-07 16:37:28 +02:00
Dan
f9ceed0c9c Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
2019-06-07 16:36:49 +02:00
Dan
571af6e0b9 Update Pyrogram to v0.14.0 2019-06-07 16:05:33 +02:00
Dan
a80c5c1dbb Fix broken links on decorators' docs 2019-06-07 15:49:16 +02:00
Dan
fe55233f50 Merge develop -> asyncio 2019-06-06 19:33:45 +02:00
Dan
da515af959 Rearrange code 2019-06-06 19:29:44 +02:00
Dan
b205c6cce0 Rename Photos to ProfilePhotos 2019-06-06 19:09:52 +02:00
Dan
8151270a94 Update docs 2019-06-06 18:25:23 +02:00
Dan
6bebe2297e Rename "thumbnails" to "thumbs" 2019-06-05 21:03:46 +02:00
Dan
17ddb0d1b7 Update get_chat_member docstrings 2019-06-05 13:58:32 +02:00
Dan
9bd9d7797b Replace "with await" with "async with" 2019-06-05 11:58:29 +02:00
Dan
b3d6b41ca8 Fix Syncer not creating Event and Lock objects inside the current loop 2019-06-05 11:28:29 +02:00
Dan
7c3bbb3fc7 Merge develop -> asyncio 2019-06-05 11:25:31 +02:00
Dan
a35e2620f8 Fix export_chat_invite_link for basic groups in Layer 100 2019-06-04 23:36:10 +02:00
Dan
a425e00a96 Add read_history method 2019-06-04 19:16:30 +02:00
Dan
896c9fa4fd Add "unsave" parameter to send_animation 2019-06-04 16:32:42 +02:00
Dan
9a44c79a82 Rename PyrogramType to Object 2019-06-03 16:56:37 +02:00
Dan
d5517f4d5f Rename Object to TLObject 2019-06-03 14:19:50 +02:00
Dan
d4dbff3226 Merge develop -> asyncio 2019-06-02 19:14:16 +02:00
Dan
4d97aae933 Merge remote-tracking branch 'origin/develop' into develop 2019-06-02 18:58:06 +02:00
Dan
cfec26d3db Add PyrogramList type 2019-06-02 16:16:16 +02:00
ColinShark
5cb709ee75 Make it one-line 2019-06-02 00:25:59 +02:00
ColinShark
12cc6fa4eb Removed Placeholder, break down comparison 2019-06-02 00:13:52 +02:00
ColinShark
d3cb386a6f Appropiate naming 2019-06-01 23:39:26 +02:00
ColinShark
04aada818e Less arbitrary name for Filter, Adapt Docstring 2019-06-01 23:36:45 +02:00
ColinShark
2eba6e58f9 Remove Optionality for args 2019-06-01 23:34:20 +02:00
ColinShark
0a96355c5d Add Filter for Callback_Query.data 2019-06-01 23:31:17 +02:00
Dan
e9a2087fe0 Fix List not calling __repr__ 2019-06-01 15:36:53 +02:00
Dan
acc0fab311 Fix animated stickers media type. They are documents for now 2019-06-01 14:07:45 +02:00
Dan
1f2be4f1ce Add send_animated_sticker method 2019-06-01 14:05:25 +02:00
Dan
dc94da3895 Add application/x-tgsticker mime type with .tgs as extension 2019-06-01 14:04:39 +02:00
Dan
d243ebc2cd Performance improvements 2019-06-01 13:18:48 +02:00
Dan
f6361cd20f Allow bare lists from the MTProto API to be printed nicely 2019-06-01 13:17:04 +02:00
Dan
e7f6e9ec66 Cast is_bot value to bool 2019-06-01 13:15:41 +02:00
Dan
48a5da8958 Let FutureSalt(s) attributes be plain integer instead of datetime values 2019-05-31 16:36:20 +02:00
Dan
a984558860 Rename methods dealing with profile pictures 2019-05-31 00:20:09 +02:00
Dan
cb3addab1e Add iter_profile_photos method 2019-05-31 00:18:43 +02:00
Dan
4ca87682af Fix Document.date attribute being a tuple
Thanks Python...
2019-05-31 00:16:31 +02:00
Dan
0340271b33 Refactor docstrings 2019-05-30 15:23:43 +02:00
Dan
715ae14751 Update send_* methods (for file_ids) 2019-05-30 14:57:52 +02:00
Dan
376909f356 Add get_input_media_from_file_id utility method
For internal usage
2019-05-30 14:56:59 +02:00
Dan
16dbd8d8db Update development version 2019-05-29 10:43:00 +02:00
Dan
55599e33c6 Rework download_media to accommodate L100 changes 2019-05-29 10:40:37 +02:00
Dan
3208b22849 Update all media types' thumbnails
They are now a List of Thumbnail objects
2019-05-29 09:50:41 +02:00
Dan
b217bf3784 Refactor ChatPhoto to accommodate L100 changes 2019-05-29 09:49:50 +02:00
Dan
fda456cd1e Rename UserProfilePhotos to just Photos for brevity and elegance 2019-05-29 09:49:13 +02:00
Dan
3a882b870b Add StrippedThumbnail type
Still a WIP
2019-05-29 09:47:43 +02:00
Dan
aaa569a08d Revamp Thumbnail type (ex PhotoSize) 2019-05-29 09:47:14 +02:00
Dan
807dcb67be Hide phone numbers and show human-friendly date formats when printing 2019-05-29 09:46:21 +02:00
Dan
41d5a13b5f Extend Chat and User types with new fields
is_verified, is_restricted, is_scam and is_support (user only)
2019-05-29 09:44:57 +02:00
Dan
38de4299c5 Add get_user_dc method 2019-05-29 09:43:48 +02:00
Dan
09d012b696 Rename get_user_profile_photos to get_user_photos 2019-05-29 09:43:33 +02:00
Dan
86a4f63d37 Rename set_user_profile_photo to set_photo
Users can only set a photo for themselves.
2019-05-29 09:42:55 +02:00
Dan
83cd828386 Rename get_user_profile_photos_count to get_user_photos_count 2019-05-29 09:41:59 +02:00
Dan
1390797f58 Rename delete_user_profile_photos to just delete_photos.
It's implied an user can only delete own photos.
2019-05-29 09:41:04 +02:00
Dan
c2424029b5 Fix dialogs after L100 update 2019-05-29 09:37:50 +02:00
Dan
e94dcd3b0b Update docs 2019-05-28 16:41:55 +02:00
Dan
87ad981420 Add get_user_dc method 2019-05-27 14:39:10 +02:00
Dan
39439255fd Merge develop -> asyncio 2019-05-25 02:02:37 +02:00
Dan
bb246f9e60 Update Pyrogram to v0.13.0 2019-05-25 01:50:34 +02:00
Dan
47c06fdae2 Docs revamp. Part 7 2019-05-25 01:37:55 +02:00
Dan
0dc953c320 Update domain name references to pyrogram.org 2019-05-19 21:40:41 +02:00
Dan
518220431e Docs revamp. Part 5 2019-05-18 01:45:01 +02:00
Dan
b6ea451ee5 Reword some method return type docstrings 2019-05-17 13:44:44 +02:00
Dan
23d0ef3cf9 Use "bot" as chat type for bots.
We now have "private", "bot", "group", "supergroups" and "channel" chat
types.
2019-05-17 13:23:03 +02:00
Dan
53d0cc30f6 Remove get_chat_preview and have get_chat deal with ChatPreview objects 2019-05-17 13:18:24 +02:00
Dan
944b672fe5 Docs revamp. Part 4 2019-05-16 21:28:34 +02:00
Dan
a5e42572f6 Allow Message.click() without arguments. Default to 0 (first button) 2019-05-13 21:05:47 +02:00
Dan
94de75f714 Bring back the possibility to use strings as callback query data
In case bytes (which is the type used by telegram) can't be successfully
decoded into strings, the raw bytes are presented instead of trying to
decode by ignoring/replacing errors.
2019-05-13 21:04:17 +02:00
Dan
90115448ac Update link hint for No API Key found errors 2019-05-13 16:37:26 +02:00
Dan
65c07b7d34 Use a better repr for all types
now eval(repr(obj) == obj
2019-05-13 16:06:34 +02:00
Dan
ef912d21ef Use more concise and cleaner description of a method and a type 2019-05-12 19:49:06 +02:00
Dan
eadda551c6 Docs revamp. Part 3 2019-05-12 19:26:55 +02:00
Dan
e4b0a78f1a Docs revamp. Part 2 2019-05-10 16:14:10 +02:00
Dan
92283d6cab Add timeout to Message.click 2019-05-09 05:55:44 +02:00
Dan
6530c7e293 Remove ChatAction module too
It's pretty much useless, better just use strings
2019-05-09 05:08:37 +02:00
Dan
3a494a478f Remove ParseMode
It's pretty much useless, better just use "markdown" and "html"
2019-05-09 04:32:43 +02:00
Dan
1737ba5f49 Revamp docs about the main Pyrogram package 2019-05-09 04:28:46 +02:00
Dan
ee91e6daa1 Rename bots folder to keyboards 2019-05-08 19:52:21 +02:00
Dan
920f8ff911 Allow unlimited replies to be fetched with get_messages 2019-05-08 16:01:03 +02:00
Dan
692befe038 Allow getting more than one reply via get_messages and replies param
Just for fun (and for consistency with the code logic, since this part
is implemented recursively), not really useful and might lead to
frequent flood waits
2019-05-08 15:40:36 +02:00
Dan
bd9bb83df5 Reword some methods' docstring 2019-05-07 18:26:27 +02:00
Dan
591499121f Add an hint about which client is loading the plugins 2019-05-06 17:40:40 +02:00
Dan
762ea3e62e Add an hint about which client is loading the plugins 2019-05-06 17:39:57 +02:00
Dan
47c4fae36d Merge develop -> asyncio 2019-05-06 17:27:21 +02:00
Dan
692073c856 Fix get_dialogs_count breaking in case of less than 200 dialogs 2019-05-06 17:09:44 +02:00
Dan
08554633ce Add get_user_profile_photos_count method 2019-05-06 17:07:41 +02:00
Dan
e8e0c16daf Add get_contacts_count method 2019-05-06 17:00:09 +02:00
Dan
4e77ead181 Add get_dialogs_count method 2019-05-06 16:58:59 +02:00
Dan
e80eebc234 Add get_history_count method 2019-05-06 16:44:50 +02:00
Dan
95ef9a64de Fix small typos 2019-05-06 16:40:07 +02:00
Dan
01f0af6bb0 Increase OFFLINE_SLEEP to 15 minutes
This avoid frequent dialogs fetch while debugging with user accounts
2019-05-06 16:36:57 +02:00
Dan
6f2c625cd1 Handle minified poll updates 2019-05-05 15:44:53 +02:00
Dan
bfda5852b6 Hint the return type of get_history 2019-05-05 15:44:28 +02:00
Dan
6c140fd03e
Merge pull request #238 from pyrogram/bot-api-4.2
Bot API 4.2
2019-05-05 12:25:42 +02:00
Dan
58482919ba Make is_member field actually working 2019-05-05 12:24:37 +02:00
Dan
a6198921c3 Fix an unresolved reference 2019-05-03 22:55:00 +02:00
Dan
ec258312dd Add missing awaits 2019-05-03 22:47:51 +02:00
Dan
80081a29b4 Add supports_streaming attribute to the Video type 2019-04-30 14:43:57 +02:00
Dan
f3d7cea700 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/types/bots/callback_query.py
2019-04-30 11:53:40 +02:00
Joscha Götzer
d30cad1a2d Use str or bytes for callback_data and CallbackQuery.data (#241) 2019-04-30 11:53:11 +02:00
Dan
7900d2abee Merge branch 'asyncio' of https://github.com/pyrogram/pyrogram into asyncio 2019-04-30 11:51:44 +02:00
Dan
952f9bc503 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/ext/base_client.py
#	pyrogram/client/methods/messages/delete_messages.py
#	pyrogram/client/types/messages_and_media/message.py
2019-04-30 11:51:36 +02:00
Joscha Götzer
8dd99a8683 Use str or bytes for callback_data and CallbackQuery.data (#241) 2019-04-30 11:49:18 +02:00
Dan
cc9bc56391 Add important note to export_chat_invite_link 2019-04-30 11:29:54 +02:00
Dan
d83a2a951d Revert "Fix export_chat_invite_link broken because of Layer update Fixes #244"
This reverts commit 2aad5985
2019-04-30 11:22:23 +02:00
Dan
2aad59856d Fix export_chat_invite_link broken because of Layer update
Fixes #244
2019-04-30 11:04:37 +02:00
Dan
94574efe2c Remove unneeded method 2019-04-30 10:33:11 +02:00
Dan
cec43bf568 Update develop version 2019-04-20 18:57:07 +02:00
Dan
63d76a7f13 Bring back automatic mime type detection for new uploads (fixes #239)
- Add mime.types file to contain a good database of type -> ext mappings
  from svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

- Load mime.type at BaseClient creation and add two convenience methods
  for guessing mime types from filenames and extensions from mime types,
  guess_mime_type and guess_extension

- Make all send_* method as well as download_media use the new mime type
  database via guess_mime_type and guess_extension methods
2019-04-20 18:56:30 +02:00
Dan
57be97566d Make delete_messages return False when it fails to delete
This is because there will be no exception raised, because Telegram
is not sending any RPCError when you try to delete a message you don't
have rights on to.
2019-04-14 22:34:05 +02:00
Dan
b056aa8d7f Add the field is_member to the ChatMember type
This can be used to find whether a restricted user is a member of the
chat at the moment of the request.
2019-04-14 21:08:33 +02:00
Dan
d6d2923e34 Add missing Poll docstrings in Message 2019-04-14 20:52:00 +02:00
Dan
5905f761fa Add PollHandler type and on_poll decorator for handling Poll updates 2019-04-14 20:50:13 +02:00
bakatrouble
952f0627f1 Merge branch 'develop' into session_storage
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/ext/base_client.py
#	pyrogram/client/ext/syncer.py
#	pyrogram/client/style/html.py
#	pyrogram/client/style/markdown.py
2019-04-14 21:49:45 +03:00
Dan
5c638e707e Poll ids are now strings and not integers 2019-04-14 20:48:25 +02:00
Dan
cbc938931d Rename forward_from_name to forward_sender_name 2019-04-14 20:34:46 +02:00
Dan
ebacefb6e0 Increase media thumbnail size limit 2019-04-14 20:33:45 +02:00
Dan
22a7e338ff Fetch the pinned message in own chat (saved messages) 2019-04-14 20:18:44 +02:00
Dan
4661fb035b Refactor Poll types and methods to reflect Bot API 4.2 docs 2019-04-14 20:17:42 +02:00
Dan
1dd3ba4133 Add missing awaits 2019-04-14 18:47:45 +02:00
Dan
313bf8952f Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
2019-04-14 12:58:58 +02:00
Dan
afac7651e4 Update to v0.12.0 2019-04-14 12:45:06 +02:00
Dan
d2179e2ede Fix Filters.video_note wrong name 2019-04-14 12:25:31 +02:00
Dan
1750300ab9 Add missing awaits 2019-04-13 17:58:20 +02:00
Dan
ad49e72f02 Fix inline_query_parser in asyncio branch 2019-04-13 17:32:18 +02:00
Dan
9100a43f7b Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/methods/chats/set_chat_description.py
2019-04-13 16:26:50 +02:00
Dan
1e635f00ea Fix set_chat_description not working anymore with the new Layer 2019-04-13 16:10:15 +02:00
Dan
6ad9caa7c6 Automatically cast inline result ids to string 2019-04-13 15:54:19 +02:00
Dan
4d1abbbb79 Make the deprecation warning actually work 2019-04-13 14:41:14 +02:00
Dan
292a6ea7bf Refactor the command filter.
Also allow it to work on media captions as well
2019-04-13 14:21:53 +02:00
Dan
88078d4573 Simplify user and chat filters implementation 2019-04-13 14:03:01 +02:00
Dan
d49aed3d9e Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
2019-04-13 13:05:59 +02:00
Dan
05aed5e0e1 Clean up documentation pages 2019-04-12 15:52:06 +02:00
Dan
95a7befed5 Update async version 2019-04-08 16:50:48 +02:00
Ningmua Bruno
8023aa5d28
Attempting solution to why pyrogram breaks 2019-04-01 02:36:54 +01:00
Dan
b94f6d4e99 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/methods/chats/get_chat_members.py
2019-03-28 16:26:28 +01:00
Dan
fbe6af2fc6 Automatically handle flood waits when using get_chat_members 2019-03-28 16:24:11 +01:00
Dan
f96a0b7674 Merge branch 'develop' into asyncio 2019-03-28 14:02:02 +01:00
Dan
e79f4fde80 Fix send_chat_action not working with upload_* actions 2019-03-28 14:01:38 +01:00
Dan
e05a5ebf6f Fix core types not being printed because of missing __slots__ 2019-03-28 14:01:16 +01:00
Dan
29940fbc66 Fix StopTransmission in asyncio by inheriting from StopAsyncIteration
Instead of StopIteration
2019-03-27 15:44:29 +01:00
Dan
7f7f9768fd Add missing awaits 2019-03-27 15:16:15 +01:00
Dan
654a432d99 Merge branch 'develop' into asyncio 2019-03-27 14:46:24 +01:00
Dan
b4da453ef3 Documentation fixes 2019-03-27 14:46:02 +01:00
Dan
ef5dd96bdc Fix broken mentions for both HTML and Markdown 2019-03-26 13:32:30 +01:00
Dan
1179a5b994 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/client.py
#	pyrogram/session/session.py
2019-03-25 11:52:54 +01:00
Dan
b8341a9869 Remove delete_messages limitations 2019-03-25 11:34:47 +01:00
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
ac318831dc Add missing awaits 2019-03-22 13:47:31 +01:00
Dan
5d163ebabc Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/dispatcher/dispatcher.py
#	pyrogram/client/types/messages_and_media/sticker.py
2019-03-22 13:36:27 +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
33c6da44b2 Merge branch 'develop' into asyncio 2019-03-21 17:05:01 +01:00
Dan
afcde95b30 Fix parsing ChannelForbidden; it doesn't have default permissions 2019-03-21 17:03:35 +01:00
Dan
a4217ab58b Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/methods/messages/forward_messages.py
#	pyrogram/client/types/messages_and_media/message.py
2019-03-21 14:09:07 +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
Dan
03707fd312 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/methods/messages/forward_messages.py
#	pyrogram/client/methods/messages/send_contact.py
#	pyrogram/client/types/messages_and_media/message.py
2019-03-21 14:02:35 +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
9d701bc226 Fix import order causing errors 2019-03-16 20:15:25 +01:00
Dan
a06885dd14 Add support for "async with" context manager 2019-03-16 19:56:25 +01:00
Dan
a329e56259 Fix import order causing errors 2019-03-16 19:56:04 +01:00
Dan
84fb959c8c Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/client.py
#	pyrogram/client/methods/bots/answer_callback_query.py
#	pyrogram/client/methods/bots/get_game_high_scores.py
#	pyrogram/client/methods/bots/get_inline_bot_results.py
#	pyrogram/client/methods/bots/request_callback_answer.py
#	pyrogram/client/methods/bots/send_game.py
#	pyrogram/client/methods/bots/send_inline_bot_result.py
#	pyrogram/client/methods/bots/set_game_score.py
#	pyrogram/client/methods/chats/delete_chat_photo.py
#	pyrogram/client/methods/chats/export_chat_invite_link.py
#	pyrogram/client/methods/chats/get_chat.py
#	pyrogram/client/methods/chats/get_chat_member.py
#	pyrogram/client/methods/chats/get_chat_members.py
#	pyrogram/client/methods/chats/get_chat_members_count.py
#	pyrogram/client/methods/chats/get_dialogs.py
#	pyrogram/client/methods/chats/iter_chat_members.py
#	pyrogram/client/methods/chats/iter_dialogs.py
#	pyrogram/client/methods/chats/join_chat.py
#	pyrogram/client/methods/chats/kick_chat_member.py
#	pyrogram/client/methods/chats/leave_chat.py
#	pyrogram/client/methods/chats/pin_chat_message.py
#	pyrogram/client/methods/chats/promote_chat_member.py
#	pyrogram/client/methods/chats/restrict_chat_member.py
#	pyrogram/client/methods/chats/set_chat_description.py
#	pyrogram/client/methods/chats/set_chat_photo.py
#	pyrogram/client/methods/chats/set_chat_title.py
#	pyrogram/client/methods/chats/unban_chat_member.py
#	pyrogram/client/methods/chats/unpin_chat_message.py
#	pyrogram/client/methods/contacts/add_contacts.py
#	pyrogram/client/methods/contacts/delete_contacts.py
#	pyrogram/client/methods/contacts/get_contacts.py
#	pyrogram/client/methods/messages/delete_messages.py
#	pyrogram/client/methods/messages/download_media.py
#	pyrogram/client/methods/messages/edit_message_caption.py
#	pyrogram/client/methods/messages/edit_message_media.py
#	pyrogram/client/methods/messages/edit_message_reply_markup.py
#	pyrogram/client/methods/messages/edit_message_text.py
#	pyrogram/client/methods/messages/forward_messages.py
#	pyrogram/client/methods/messages/get_history.py
#	pyrogram/client/methods/messages/get_messages.py
#	pyrogram/client/methods/messages/iter_history.py
#	pyrogram/client/methods/messages/send_animation.py
#	pyrogram/client/methods/messages/send_audio.py
#	pyrogram/client/methods/messages/send_cached_media.py
#	pyrogram/client/methods/messages/send_chat_action.py
#	pyrogram/client/methods/messages/send_contact.py
#	pyrogram/client/methods/messages/send_document.py
#	pyrogram/client/methods/messages/send_location.py
#	pyrogram/client/methods/messages/send_media_group.py
#	pyrogram/client/methods/messages/send_message.py
#	pyrogram/client/methods/messages/send_photo.py
#	pyrogram/client/methods/messages/send_sticker.py
#	pyrogram/client/methods/messages/send_venue.py
#	pyrogram/client/methods/messages/send_video.py
#	pyrogram/client/methods/messages/send_video_note.py
#	pyrogram/client/methods/messages/send_voice.py
#	pyrogram/client/methods/password/change_cloud_password.py
#	pyrogram/client/methods/password/enable_cloud_password.py
#	pyrogram/client/methods/password/remove_cloud_password.py
#	pyrogram/client/methods/users/delete_user_profile_photos.py
#	pyrogram/client/methods/users/get_user_profile_photos.py
#	pyrogram/client/methods/users/get_users.py
#	pyrogram/session/auth.py
#	pyrogram/session/session.py
2019-03-16 19:49: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
c611944d45 Don't ensure ascii when printing objects
This will break in case of non-utf8 terminals
2019-03-16 15:40:07 +01:00
Dan
6bd9ddc95e Add __slots__ to Telegram TL types 2019-03-16 15:30:55 +01:00
Dan
36635625f3 Update develop version 2019-03-13 14:55:02 +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
7cdcb515b1 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/methods/chats/promote_chat_member.py
#	pyrogram/client/methods/chats/restrict_chat_member.py
#	pyrogram/client/methods/chats/unban_chat_member.py
2019-03-13 13:08:58 +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
3d23b681e3 Add missing await 2019-03-12 16:48:34 +01:00
Dan
ae96ca5b90 Merge branch 'develop' into asyncio 2019-03-12 16:47:12 +01:00
Dan
90b959555d Fix flood waits generated when iterating over basic chat members 2019-03-12 16:46:54 +01:00
Dan
2078e6da28 Turn send_cached_media async 2019-03-11 21:27:25 +01:00
Dan
c6e4963ce0 Merge branch 'develop' into asyncio 2019-03-11 21:26:34 +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
ccf7271d8c Merge branch 'develop' into asyncio 2019-03-04 12:51:00 +01:00
Dan
64775f5209 Fix "ModuleNotFoundError is not defined" error for Python <3.6 2019-03-04 12:50:42 +01:00
Dan
99af3a4180 Tune upload pool size and workers count
Use 1 worker only in case of small files
2019-03-03 17:11:55 +01:00
Dan
4b73358922 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/session/session.py
2019-03-03 16:54:43 +01:00
Dan
e42599051c Use a lower timeout when starting a session to speed up re-connections
Sometimes the server drops right after a successful connection and
pyrogram keeps waiting up 15 seconds (current WAIT_TIMEOUT) for the
first query to time out and start again a new connection.
2019-03-03 16:50:25 +01:00
Dan
41649066f3 Merge remote-tracking branch 'origin/asyncio' into asyncio 2019-03-03 14:13:47 +01:00
Dan
02a1dde399 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/methods/chats/join_chat.py
#	pyrogram/client/methods/messages/edit_message_media.py
2019-03-02 16:36:44 +01:00
bakatrouble
85700b0ffc Do not cache entities without access_hash 2019-03-01 21:23:53 +03:00
bakatrouble
8cc61f00ed Fix threading with sqlite storage 2019-03-01 21:23:01 +03: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
bakatrouble
5874e521ba Merge remote-tracking branch 'pyrogram/develop' into session_storage 2019-03-01 19:43:02 +03: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
bakatrouble
033622cfb8 Cleanup json session storage specific code as it is used only for migrations 2019-02-27 22:49:23 +03:00
bakatrouble
10fc340eff Add session migrating from json; add some indexes to sqlite sessions 2019-02-26 21:43:23 +03:00
bakatrouble
03b92b3302 Implement SQLite session storage 2019-02-26 21:06:30 +03:00
bakatrouble
260043d8ec Unify peers cache 2019-02-26 19:24:00 +03:00
Dan
bd56c428c6
Inherit from StopAsyncIteration 2019-02-23 12:09:27 +01:00
bakatrouble
5dc33c6337 add in-memory session storage, refactor session storages, remove mixin 2019-02-22 03:37:19 +03:00
bakatrouble
9c4e9e166e Merge #221, string sessions now work for bots too 2019-02-22 02:13:51 +03:00
bakatrouble
fd5889d69e Merge branch 'bot_token_arg' into session_storage
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/ext/base_client.py
#	pyrogram/client/ext/syncer.py
2019-02-22 01:59:21 +03:00
bakatrouble
5cc9a452eb Add bot_token argument (closes #123) 2019-02-22 01:34:08 +03:00
bakatrouble
fd732add70 Refactor session storages: use session_name arg to detect storage type 2019-02-22 00:03:58 +03:00
bakatrouble
b04cf9ec92 Add string session storage 2019-02-21 21:43:57 +03:00
bakatrouble
431a983d5b Fix logging and cleanup imports in client.py 2019-02-21 21:18:53 +03:00
bakatrouble
9d32b28f94 Implement extendable session storage and JSON session storage 2019-02-21 20:12:11 +03: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
cfcc4195ae Merge branch 'develop' into asyncio
# Conflicts:
#	requirements.txt
2019-02-07 16:28:11 +01:00
Dan
c05e008656 Monkey patch "typing" only for Python 3.5.0, 3.5.1 and 3.5.2 2019-02-07 16:27:17 +01:00
Dan
1e6d03108f Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/client.py
#	pyrogram/client/methods/contacts/get_contacts.py
#	pyrogram/client/methods/messages/send_media_group.py
#	requirements.txt
2019-02-07 16:20:03 +01:00
Dan
048858f545 Merge remote-tracking branch 'origin/develop' into develop 2019-02-07 13:23:03 +01:00
Dan
c1ca2d08ad Vendor an updated (and working) typing module to fix <3.5.3 errors
Monkey patch from https://github.com/python/typing
2019-02-07 13:20:44 +01:00
Dan
0216df7fc3
Update develop version 2019-02-06 19:44:23 +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
4eb26c5b92 Fix sleep method calls in asyncio: time.sleep -> asyncio.sleep 2019-02-04 18:34:58 +01:00
Dan
6109129f73 Reword some filter docstrings to better explain their usages 2019-02-04 18:23:40 +01:00
Dan
5de2b67df5 Update Pyrogram to v0.11.0 2019-02-04 16:40:24 +01:00
Dan
f012428f7e Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
2019-02-04 13:00:28 +01:00
Dan
c213118a74 Update develop version 2019-02-04 13:00:09 +01:00
Dan
dd86aba9d3 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/dispatcher/dispatcher.py
#	pyrogram/client/methods/messages/get_history.py
2019-02-04 12:59:20 +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
MBRCTV
cc7cb27858 Add missing await for send_audio thumbnail upload (#210) 2019-01-30 15:45:30 +01:00
MBRCTV
58cb30d97c
Added missing 'await' on thumb 2019-01-29 16:36:21 -05: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
6c7a3316dd Merge branch 'develop' into asyncio 2019-01-26 16:15:38 +01:00
Dan
a8a6f53e2d Fix the configuration load process breaking in case of no plugins 2019-01-26 13:01:44 +01:00
Dan
e83012bfb8 Add missing await keywords 2019-01-25 10:24:04 +01:00
Dan
61e9762977 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
2019-01-25 10:22:56 +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
652b3f90bc Remove async from some method signatures. They are not asynchronous 2019-01-17 12:34:30 +01:00
Dan
d72754be1e Add missing await 2019-01-17 12:30:40 +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
63cb4b412e Fix PyCharm mess when merged develop into asyncio 2019-01-13 11:21:31 +01:00
Dan
9999c77e95 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/methods/messages/send_animation.py
#	pyrogram/client/methods/messages/send_audio.py
#	pyrogram/client/methods/messages/send_document.py
#	pyrogram/client/methods/messages/send_photo.py
#	pyrogram/client/methods/messages/send_sticker.py
#	pyrogram/client/methods/messages/send_video.py
#	pyrogram/client/methods/messages/send_video_note.py
#	pyrogram/client/methods/messages/send_voice.py
#	pyrogram/client/types/messages_and_media/message.py
2019-01-11 14:24:15 +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
48b50780ce Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/methods/messages/send_message.py
2019-01-11 13:01:26 +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
3213fc4bb9 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
2019-01-07 22:59:47 +01:00
Dan
36681c8c5b Update dev version 2019-01-07 22:59:22 +01:00
Dan
35096a28c3 Fix asyncio merge 2019-01-07 22:57:19 +01:00
Dan
21c301d19d Merge branch 'develop' into asyncio 2019-01-07 22:51:57 +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
2055736661 Merge branch 'develop' into asyncio 2019-01-07 10:36:52 +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
0bae143d5d Fix asyncio merge issues 2019-01-07 09:37:26 +01:00
Dan
2084a406a4 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/client.py
#	pyrogram/client/ext/base_client.py
#	pyrogram/client/methods/chats/get_chat_members.py
#	pyrogram/client/methods/chats/get_dialogs.py
#	pyrogram/client/methods/chats/kick_chat_member.py
#	pyrogram/client/methods/messages/get_history.py
#	pyrogram/client/methods/messages/get_messages.py
#	pyrogram/client/types/messages_and_media/messages.py
2019-01-07 08:46:28 +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
7cb1c99e28 Update copyright year 2019-01-05 18:29:48 +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
b7b31d39e8 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
2019-01-03 09:15:44 +01:00
Dan
4493f78138 Update to v0.10.3 2019-01-03 08:59:39 +01:00
Dan
372bbabe28 Make invite links of public channels work with get_chat 2019-01-02 22:39:16 +01:00
Dan
7f79210ba3 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/dispatcher/dispatcher.py
#	requirements.txt
2019-01-02 19:55:45 +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
3ada74068e Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
2018-12-31 17:45:04 +01:00
Dan
4f04d4aee8 Update to v0.10.2 2018-12-31 17:21:18 +01:00
Dan
e56425c878 Merge branch 'develop' into asyncio 2018-12-31 17:14:47 +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
4e4d765dd1 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
2018-12-31 14:53:24 +01:00
Dan
e5be7fcc90 Update to v0.10.1 2018-12-31 14:41:38 +01:00
Dan
2ea1f0f323 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/methods/chats/get_chat.py
#	pyrogram/client/methods/messages/get_messages.py
#	pyrogram/client/types/messages_and_media/messages.py
2018-12-31 12:06:15 +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
769b3ebdee Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/methods/chats/get_dialogs.py
#	pyrogram/client/methods/messages/get_history.py
2018-12-28 00:38:54 +01:00
Dan
9fadbbd728 Update develop version 2018-12-28 00:37:20 +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
f4736c17a6 Merge branch 'develop' into asyncio 2018-12-25 23:08:52 +01:00
Dan
1eee4b77e1 Pin/unpin_chat_message don't raise a ValueError anymore 2018-12-25 23:08:45 +01:00
Dan
06d8293fa0 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/client.py
#	pyrogram/client/methods/bots/send_inline_bot_result.py
#	pyrogram/client/methods/chats/pin_chat_message.py
#	pyrogram/client/methods/chats/unpin_chat_message.py
#	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 23:07: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
0a8a1f7771 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/client.py
2018-12-24 23:12:26 +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
7881320a88 Update develop branch version 2018-12-23 19:53:22 +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
Dan
f477171344 Document vote_poll 2018-12-23 17:00:51 +01:00
Dan
03aa5094f7 Add retract_vote method 2018-12-23 17:00:51 +01:00
Dan
10f1e06326 Rework vote_poll to work with all polls generated by different clients 2018-12-23 17:00:51 +01:00
Dan
1f82eaa26f Add vote_poll method 2018-12-23 17:00:51 +01:00
Dan
0ce7498f81 Parse the pinned message on basic chats too 2018-12-23 17:00:51 +01:00
Dan
2b568afd2a Refactor Poll.
Move PollAnswer into poll.py and rename it to PollOption
2018-12-23 17:00:50 +01:00
Dan
f8de518f6b Update future version 2018-12-23 13:21:32 +01:00
Dan
2101dfb8db Show a meaningful error and hint to read more when using cloud password 2018-12-23 01:09:20 +01:00
Dan
0371f4ce8b Make cloud password methods raise NotImplementedError. See #178
The protocol changed (SRP) and they are currently not re-implemented.
2018-12-23 01:05:44 +01:00
Dan
7ee89c94cb Update pin/unpin_chat_message
It is now possible to pin messages in basic groups as well as in the
own user's chat.
2018-12-23 01:00:31 +01:00
Dan
84fef9ecf1 Add missing file_reference argument where applicable 2018-12-23 00:55:00 +01:00
Dan
e669a6a9ae Add send_poll method 2018-12-23 00:33:15 +01:00
Dan
8eab47123a Add Filters.poll to filter Poll messages 2018-12-22 23:55:16 +01:00
Dan
2b25b9469b Parse Poll objects inside Message 2018-12-22 23:55:04 +01:00
Dan
1ef3bc758f Export Poll and PollAnswer types 2018-12-22 23:54:42 +01:00
Dan
aef02f049c Add Poll and PollAnswer types 2018-12-22 23:54:18 +01:00
Dan
f5ce49b7b2 - Fix small glitches introduced when merging.
- Remove typing requirement, asyncio branch already needs Python 3.5+.
- Add async_lru as extra requirement because the standard lru_cache
  doesn't work in asyncio world.
2018-12-22 14:08:29 +01:00
Dan
e6667be10b Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/dispatcher/dispatcher.py
#	pyrogram/client/ext/utils.py
#	pyrogram/client/methods/bots/get_inline_bot_results.py
#	pyrogram/client/methods/bots/request_callback_answer.py
#	pyrogram/client/methods/bots/send_inline_bot_result.py
#	pyrogram/client/methods/chats/delete_chat_photo.py
#	pyrogram/client/methods/chats/export_chat_invite_link.py
#	pyrogram/client/methods/chats/get_chat.py
#	pyrogram/client/methods/chats/get_chat_member.py
#	pyrogram/client/methods/chats/get_chat_members.py
#	pyrogram/client/methods/chats/get_chat_members_count.py
#	pyrogram/client/methods/chats/get_dialogs.py
#	pyrogram/client/methods/chats/join_chat.py
#	pyrogram/client/methods/chats/kick_chat_member.py
#	pyrogram/client/methods/chats/leave_chat.py
#	pyrogram/client/methods/chats/pin_chat_message.py
#	pyrogram/client/methods/chats/promote_chat_member.py
#	pyrogram/client/methods/chats/restrict_chat_member.py
#	pyrogram/client/methods/chats/set_chat_description.py
#	pyrogram/client/methods/chats/set_chat_photo.py
#	pyrogram/client/methods/chats/set_chat_title.py
#	pyrogram/client/methods/chats/unban_chat_member.py
#	pyrogram/client/methods/chats/unpin_chat_message.py
#	pyrogram/client/methods/contacts/add_contacts.py
#	pyrogram/client/methods/contacts/delete_contacts.py
#	pyrogram/client/methods/messages/delete_messages.py
#	pyrogram/client/methods/messages/edit_message_caption.py
#	pyrogram/client/methods/messages/edit_message_media.py
#	pyrogram/client/methods/messages/edit_message_reply_markup.py
#	pyrogram/client/methods/messages/edit_message_text.py
#	pyrogram/client/methods/messages/forward_messages.py
#	pyrogram/client/methods/messages/get_history.py
#	pyrogram/client/methods/messages/get_messages.py
#	pyrogram/client/methods/messages/send_animation.py
#	pyrogram/client/methods/messages/send_audio.py
#	pyrogram/client/methods/messages/send_chat_action.py
#	pyrogram/client/methods/messages/send_contact.py
#	pyrogram/client/methods/messages/send_document.py
#	pyrogram/client/methods/messages/send_location.py
#	pyrogram/client/methods/messages/send_media_group.py
#	pyrogram/client/methods/messages/send_message.py
#	pyrogram/client/methods/messages/send_photo.py
#	pyrogram/client/methods/messages/send_sticker.py
#	pyrogram/client/methods/messages/send_venue.py
#	pyrogram/client/methods/messages/send_video.py
#	pyrogram/client/methods/messages/send_video_note.py
#	pyrogram/client/methods/messages/send_voice.py
#	pyrogram/client/methods/password/change_cloud_password.py
#	pyrogram/client/methods/password/enable_cloud_password.py
#	pyrogram/client/methods/password/remove_cloud_password.py
#	pyrogram/client/methods/users/delete_user_profile_photos.py
#	pyrogram/client/methods/users/get_me.py
#	pyrogram/client/methods/users/get_user_profile_photos.py
#	pyrogram/client/methods/users/get_users.py
#	pyrogram/client/methods/utilities/download_media.py
#	pyrogram/client/types/messages_and_media/message.py
2018-12-22 12:23:08 +01:00
Dan
4bf6831be8 Fix some non-importable types for type hint 2018-12-22 11:22:58 +01:00
Dan
a0355a5cc4 Type hint all methods return values 2018-12-19 15:59:15 +01:00
Dan
bf0b947253 Type hint all Client methods 2018-12-19 14:55:48 +01:00
Dan
b593463bd7 Type hint all the remaining method parameters 2018-12-19 14:50:23 +01:00
Dan
4fb9969470 Replace Client with BaseClient type hint 2018-12-19 14:45:16 +01:00
Dan
5035daa9d7 Type hint all Pyrogram types 2018-12-19 13:29:58 +01:00
Dan
e8fbae3166 Make all parse methods protected to hide them from the lib user 2018-12-19 13:00:33 +01:00
Dan
b79f395d37 Type hint Message 2018-12-19 12:30:25 +01:00
Dan
26ef8ea953 Revert to the old style 2018-12-19 10:59:49 +01:00
Dan
510b2456b6 Reword offset_dialog docstrings in Dialog 2018-12-19 10:27:47 +01:00
Dan
8f6f38e0b0 Merge branch 'develop' into new-parsers 2018-12-18 11:22:47 +01:00
Dan
bc824f738c Add extra warnings when sign-ins or sign-ups fail 2018-12-18 11:21:37 +01:00
Dan
c9bcf93cf7 Add extra checks in case sign-in or sign-up fails 2018-12-18 10:10:04 +01:00
Dan
e203a5500f Don't treat messages containing web page previews as media 2018-12-18 10:07:40 +01:00
Dan
914dfca574 Reformat code and optimize imports 2018-12-18 09:50:39 +01:00
Dan
27052e31ca Fix all those unresolved references caused by the refactor 2018-12-18 09:45:49 +01:00
Dan
dc2792fbea Ditch raw attribute. There's no use for it now 2018-12-18 08:48:20 +01:00
Dan
761a07bda8 Remove unneeded parts in utils.py 2018-12-17 16:42:16 +01:00
Dan
1344e95be6 Use the new parsers in dispatcher.py 2018-12-17 16:40:06 +01:00
Dan
2a1a6301a6 Add Messages.parse_delete method 2018-12-17 16:37:58 +01:00
Dan
6a0a271d24 Fix broken UpdateStatus in case of incoming updates 2018-12-17 16:28:16 +01:00
Dan
1873344467 Update get_users to use the refactored User type 2018-12-17 16:27:16 +01:00
Dan
6bc2db7157 Better way of parsing total_count for Messages and UserProfilePhotos 2018-12-17 16:14:32 +01:00
Dan
e6dced80cf Update get_dialogs to use the new refactored Dialogs type 2018-12-17 16:13:57 +01:00
Dan
ccf677f3a0 Refactor Dialog and Dialogs 2018-12-17 16:13:28 +01:00
Dan
8c02a1553d Add Chat.parse_dialog 2018-12-17 16:12:53 +01:00
Dan
603bc88aa3 Refactor get_history method 2018-12-17 14:18:41 +01:00
Dan
7b90a0e7c5 Refactor Messages 2018-12-17 14:18:15 +01:00
Dan
5bc9e0fc75 Fix Video not having client and raw attributes set 2018-12-17 14:17:57 +01:00
Dan
8cbb9c9316 Refactor UserProfilePhotos 2018-12-17 13:51:08 +01:00
Dan
a683e3e917 Refactor bot keyboard types 2018-12-17 13:16:05 +01:00
Dan
3f643242b1 Reformat encoder style 2018-12-17 13:03:08 +01:00
Dan
d31a696f32 Fix encoder breaking with bytes 2018-12-17 13:02:22 +01:00
Dan
52b9319734 Refactor CallbackQuery 2018-12-17 13:01:41 +01:00
Dan
92118e3608 Reformat __init__ parameters 2018-12-17 12:45:35 +01:00
Dan
e9a362923f Cache stickers 2018-12-17 12:42:29 +01:00
Dan
ac8258f451 Move Str into message.py 2018-12-17 12:40:32 +01:00
Dan
c6a0bf0791 Force named arguments on Pyrogram types 2018-12-16 22:34:23 +01:00
Dan
7430529646 Make use of the refactored Chat type in get_chat 2018-12-16 17:59:34 +01:00
Dan
5d64de10dc Add Chat.parse_full 2018-12-16 17:58:32 +01:00
Dan
31b046e5cc Use the refactored types in get_chat_member(s) 2018-12-16 17:58:05 +01:00
Dan
66cd896a99 Allow passing raw 2018-12-16 17:10:55 +01:00
Dan
cffafa8c61 Small fixed to PyrogramType 2018-12-16 17:10:08 +01:00
Dan
d62bc1d8ba Refactor ChatMember and ChatMembers 2018-12-16 16:22:46 +01:00
Dan
3ecbb35470 Delete Update 2018-12-16 15:26:56 +01:00
Dan
6ab1c87050 Add PyrogramType 2018-12-16 15:24:51 +01:00
Dan
5ecbfbf25f Refactor Message and MessageEntity 2018-12-16 14:30:44 +01:00
Dan
334fb8d0ba Refactor Sticker, Contact and Document 2018-12-16 14:30:13 +01:00
Dan
c84fca30a2 Refactor Venue and Location 2018-12-16 14:29:10 +01:00
Dan
e5e0b17809 Refactor Photo and PhotoSize 2018-12-16 14:28:41 +01:00
Dan
11ed26b318 Refactor Animation, Video and VideoNote 2018-12-16 14:27:52 +01:00
Dan
905f4b8e62 Refactor Voice and Audio 2018-12-16 14:25:18 +01:00
Dan
efc6023b08 Re-implement remove_cloud_password using SRP 2018-12-15 20:08:31 +01:00
Dan
1c4dd13e72 Refactor Chat 2018-12-15 17:31:22 +01:00
Dan
5962f8dedc Refactor ChatPhoto 2018-12-15 17:30:24 +01:00
Dan
bf3609ec0a Refactor User 2018-12-15 17:29:51 +01:00
Dan
0d0fbdad27 Reformat UserStatus style 2018-12-15 17:28:52 +01:00
Dan
26b15f384d Update UserStatus docs 2018-12-15 17:26:24 +01:00
Dan
b2f3e79ff7 Refactor UserStatus 2018-12-15 17:25:34 +01:00
Dan
9ac492e644 Remove Message generated comments 2018-12-15 15:32:50 +01:00
Dan
37d063e569 Reorganize Message __init__ 2018-12-15 12:35:09 +01:00
Dan
40ecc082a6 Re-implement change_cloud_password using SRP 2018-12-15 12:22:33 +01:00
Dan
124f49ce7a Merge branch 'develop' into asyncio 2018-12-15 11:37:34 +01:00
Dan
1bd41d0138 Fix CallbackQuery docs 2018-12-15 11:37:27 +01:00
Dan
47b25b0e2d CallbackQuery must deal with bytes instead of strings 2018-12-15 11:36:16 +01:00
Dan
17b166e6a6 CallbackQuery must deal with bytes instead of strings 2018-12-15 11:35:53 +01:00
Dan
6292fe8f86 Fix progress callbacks in asyncio 2018-12-15 11:24:31 +01:00
Dan
976eae63ed Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/methods/messages/send_media_group.py
#	pyrogram/client/methods/utilities/download_media.py
2018-12-15 11:12:30 +01:00
Dan
70470360b1 Print account name when logging in the first time 2018-12-15 11:10:25 +01:00
Dan
001a067d82 Make start and stop methods return self to make chaining possible
Suggestion by @CharlesBachman in Telegram
2018-12-15 09:50:35 +01:00
Dan
6a9c7312cc Document how decorated functions are modified 2018-12-15 09:10:19 +01:00
Dan
e3459017ef Re-implement enable_cloud_password using SRP 2018-12-15 09:05:50 +01:00
Dan
89983b75ca Move relevant SRP-related code into another file
These functions are going to be used by all *_cloud_password methods
2018-12-15 08:59:26 +01:00
Dan
2ae8730b22 Add Filters.via_bot to filter messages sent via inline bots 2018-12-15 08:53:22 +01:00
Dan
4ba5e63034 Report offset instead of 0 in case file size is missing (for file_id) 2018-12-15 08:51:20 +01:00
Dan
9c91720104 Fix broken download_media progress args 2018-12-15 08:50:08 +01:00
Dan
49b18c600d Add missing thumb for videos in albums. Fixes #169 2018-12-15 08:39:43 +01:00
Dan
0e050b45e7 Attempt srp 2018-12-15 08:06:18 +01:00
Dan
2a9149ca5f
Merge pull request #166 from zeroone2numeral2/webpage-message-attribute
Added Message.web_page and Filters.web_page
2018-12-08 16:43:48 +01:00
Dan
ac8fc58a06
Add a note hinting about basic support for web pages 2018-12-08 16:41:30 +01:00
zeroone2numeral2
2d1a7871ea Added Filters.web_page 2018-11-25 17:05:59 +00:00
zeroone2numeral2
61f2d7c968 Added web_page attribute to Message object 2018-11-25 16:56:39 +00:00
Dan
40047877fe Add missing await 2018-11-20 19:47:41 +01:00
Dan
017c61a876 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/dispatcher/dispatcher.py
#	pyrogram/client/methods/bots/request_callback_answer.py
#	pyrogram/client/types/messages_and_media/message.py
2018-11-20 19:40:07 +01:00
Dan
436c48d1c2 Allow Bots to edit and delete own messages w/ Message bound methods.
This is some sort of a workaround because the server doesn't send full
info about text messages originated by bots. Fixes #162
2018-11-20 16:52:59 +01:00
Dan
b753e48732 Remove unnecessary check 2018-11-20 16:08:25 +01:00
Dan
08776619a7 Change callback_data type to bytes for request_callback_answer
Fixes #161
2018-11-20 16:08:24 +01:00
Aleksandr Pyatnitsin
40d7ed2b8e
fix RawUpdateHandler 2018-11-14 23:21:19 +03:00
Dan
d5ef03d662 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/client.py
#	pyrogram/client/dispatcher/dispatcher.py
2018-11-13 20:36:04 +01:00
Dan
54e7539865 Update to v0.9.3 2018-11-13 20:34:33 +01:00
Dan
e400641204 Fix Dispatcher bad behaviours in case of multiple Clients running at the same time. 2018-11-13 20:31:53 +01:00
Dan
f7f1dbd25c Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/types/messages_and_media/message.py
2018-11-13 14:01:47 +01:00
Dan
5b10afa7a3 Small style fix 2018-11-13 13:30:26 +01:00
Dan
9f8e05861f Fix sphinx warning 2018-11-13 13:22:23 +01:00
Dan
87fca98035 Update to v0.9.2 2018-11-13 13:16:31 +01:00
Dan
8dfa80ef61 Add missing await keyword 2018-11-10 15:29:37 +01:00
Dan
df0de0c85a Merge branch 'develop' into asyncio 2018-11-10 15:22:08 +01:00
Dan
2e16499369 Allow decorators to be stacked
E.g:

app1.on_message(...)
app2.on_message(...)
app3.on_message(...)
def on_message(client, message):
    ...
2018-11-10 15:21:52 +01:00
Dan
fafa3b5131 Fix some decorators not working when used in plugins 2018-11-10 15:15:58 +01:00
Dan
97e705f833 Make new types importable 2018-11-09 13:16:44 +01:00
Dan
ebfb64e139 Add InputMessageContent docstrings 2018-11-09 13:16:27 +01:00
Dan
1ab17d8015 Fix InputTextMessageContent with empty reply markups 2018-11-09 13:15:54 +01:00
Dan
5ed904a2e4 Update inline_query_result_article 2018-11-09 13:15:20 +01:00
Dan
06797d32f0 Add InlineQueryResult super class 2018-11-09 13:09:27 +01:00
Dan
55cca00401 Add on_inline_query decorator 2018-11-09 13:08:50 +01:00
Dan
07cb14de61 Add InlineQueryHandler 2018-11-09 13:08:28 +01:00
Dan
755a392fa2 Merge branch 'develop' into inline-mode 2018-11-09 10:23:47 +01:00
Dan
7bc4490680 Rework dispatcher for asyncio 2018-11-09 10:10:26 +01:00
Dan
301ba799cf Fix update_worker not being async 2018-11-09 09:41:49 +01:00
Dan
14feffce84 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/dispatcher/dispatcher.py
#	pyrogram/client/ext/utils.py
#	pyrogram/client/types/messages_and_media/message.py
2018-11-09 09:33:00 +01:00
Dan
c3edd9d862 Merge branch 'dispatcher-optimizations' into develop 2018-11-09 09:23:16 +01:00
Dan
23fd39e2c8 Update dispatcher.py 2018-11-09 09:21:01 +01:00
Dan
dfadf92742 Update InlineQueryResultArticle
Inherit from InlineQueryResult
2018-11-09 09:14:03 +01:00
Dan
b98345b20e Add InputMessageContent type 2018-11-09 09:13:32 +01:00
Dan
c7fe5b810a Add InlineQueryResult type 2018-11-09 09:13:20 +01:00
Dan
aaded7564e Clean up auto generated comments 2018-11-09 08:54:54 +01:00
Dan
735246b259 Fix InlineQuery ID 2018-11-09 08:53:34 +01:00
Dan
8d50b86bc6 Merge branch 'develop' into inline-mode
# Conflicts:
#	compiler/api/compiler.py
2018-11-09 08:52:26 +01:00
Dan
3adb820bac
Merge pull request #156 from VANKINEENITAWRUN/develop
Add missing args to Message.download bound method
2018-11-08 20:30:39 +01:00
Dan
80726784e5
Fix Filters.chat docstrings using unusual double quotes 2018-11-08 20:25:35 +01:00
Dan
803f36412f
Update Filters.user docstrings 2018-11-08 20:24:54 +01:00
Furoin
b4bc7deba0 added Filters.user("me") 2018-11-08 17:11:43 +03:00
Vankineeni Tawrun
cdabf3e7e0 added args to Message.download bound method 2018-11-08 19:08:56 +05:30
Dan
3b7580739b Merge branch 'develop' into asyncio 2018-11-08 11:14:20 +01:00
Dan
774462283e Update service and media filter docstrings 2018-11-08 11:10:24 +01:00
Dan
f6d3db3662 Update docstring style 2018-11-08 11:03:47 +01:00
Dan
b747f87319 Update Filters.media 2018-11-08 10:50:52 +01:00
Dan
e760550f8b Add Message.media field 2018-11-08 10:49:32 +01:00
Dan
f26e20d30e Update Filters.service 2018-11-08 10:44:32 +01:00
Dan
fc7b77e2b9 Add Message.service field 2018-11-08 10:40:46 +01:00
Dan
32a09ffc4c Add Message.empty field 2018-11-08 10:28:11 +01:00
Dan
cedb1f069a Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/ext/utils.py
#	pyrogram/client/types/messages_and_media/message.py
2018-11-07 13:12:52 +01:00
Dan
f8844d60ab Handle possible MESSAGE_IDS_EMPTY errors in case of pinned messages 2018-11-07 13:11:33 +01:00
Dan
648eb80928 Add Message.edit() bound method 2018-11-07 12:03:57 +01:00
Dan
160420bda4
Merge pull request #155 from Furoin/chat
Allow using "me" or "self" in Filters.chat
2018-11-06 17:41:12 +01:00
Dan
5efd608487
Update Filters.chat docstrings 2018-11-06 17:40:37 +01:00
Dan
5571888143
Add mentioned docstrings 2018-11-06 17:37:32 +01:00
Dan
0943761a91
Update filters.py 2018-11-06 17:32:46 +01:00
Dan
5da5cabf4c
Remove useless variable 2018-11-06 17:31:04 +01:00
Furoin
1adc812108 added Filters.chat("me") 2018-11-06 18:36:40 +03:00
Furoin
2d0ffcb0f4 added Filters.mentioned 2018-11-06 17:13:37 +03:00
Furoin
91beb214e9 added message.mentioned 2018-11-06 17:11:35 +03:00
Dan
9c7db1046e Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
2018-11-05 17:44:40 +01:00
Dan
03f57cd2af Use TCPAbridgedO as default connection mode 2018-11-05 17:33:12 +01:00
Dan
5532c12e56 Update dev version 2018-11-05 17:32:11 +01:00
Dan
a9c4c72e5f Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/ext/utils.py
2018-11-04 18:00:07 +01:00
Dan
e3a93b339c Update to v0.9.1 2018-11-04 17:50:51 +01:00
Dan
ff7ee4678a Catch possible MESSAGE_IDS_EMPTY errors 2018-11-04 17:25:39 +01:00
Dan
966926d383 Remove unneeded FloodWait check 2018-11-04 16:53:23 +01:00
Dan
46e19c395c Don't encode callback data when sending inline buttons 2018-11-04 11:36:10 +01:00
Dan
af937152a1 Don't decode inline buttons callback data
Clients are able to set any value as plain bytes, this means UTF-8
decoding could fail.
2018-11-04 09:36:58 +01:00
Dan
30c0086fde Fix missing total_count for ChatMembers in channels/supergroups 2018-11-03 22:01:26 +01:00
Dan
96af2ebcf2 Fix getattr failing for ChannelForbidden objects 2018-11-03 17:04:04 +01:00
Dan
5917fffb59 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
2018-11-03 14:47:48 +01:00
Dan
106fc0f458 Update to v0.9.0 2018-11-03 14:35:26 +01:00
Furoin
bc703ae6d7 added Filters.dan 2018-11-03 14:57:57 +03:00
Dan
bc4c787599 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/types/messages_and_media/message.py
#	pyrogram/connection/transport/tcp/tcp.py
2018-11-03 12:04:31 +01:00
Dan
c006ba5b30
Merge pull request #146 from TolichP/add-filesize-limit-error
Add file size limit error
2018-11-03 11:11:06 +01:00
Dan
09563067c7
Add a check for 0 B file sizes 2018-11-03 11:10:43 +01:00
Dan
45129658b0 Revisit docstrings 2018-11-03 10:49:11 +01:00
Dan
0c76774283 Reformat code 2018-11-02 10:26:59 +01:00
Dan
27d10b04c0 Update dev version 2018-11-02 10:23:41 +01:00
Dan
2e53129c0c Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/ext/utils.py
#	pyrogram/client/methods/messages/get_messages.py
2018-10-28 19:53:45 +01:00
Dan
529ef143f0 Remove debugging piece of code 2018-10-28 19:52:54 +01:00
Dan
229b8df9cd Fix bad behaviours of get_messages 2018-10-28 17:44:24 +01:00
Dan
005c24e4bd Update get_messages docstrings 2018-10-28 17:24:37 +01:00
Dan
6cf6d49634 Update utils to accommodate changes on get_messages 2018-10-28 17:24:05 +01:00
Dan
daee188fa5 Update get_messages to accept the new reply_to_message_ids argument 2018-10-28 17:23:30 +01:00
Dan
39636f2843 Update get_messages signature 2018-10-28 17:18:00 +01:00
Dan
4fd93a790f Small fixes and rewords 2018-10-28 15:27:49 +01:00
Dan
0a946033c3 Move optional field down after required fields 2018-10-28 15:27:20 +01:00
Dan
11b7c3b52a Remove unused game field from Message 2018-10-28 15:26:46 +01:00
Dan
c9462911cf Fix Filters.command ignoring commands with empty prefixes 2018-10-25 14:47:18 +02:00
Dan
6ade4030b2 Merge branch 'develop' into asyncio 2018-10-23 15:50:15 +02:00
Dan
99bdaae365 Allow nested folders for smart plugins 2018-10-23 15:43:49 +02:00
Dan
66bcc7cde4 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/methods/chats/kick_chat_member.py
2018-10-21 15:56:02 +02:00
Dan
7d4dfa6d12 Merge branch 'delete-kicked-message' into develop 2018-10-21 09:51:12 +02:00
Dan
a0780d793d Apply code review suggestions 2018-10-21 14:44:29 +07:00
Dan
bc08ba86d9 Update emojis 2018-10-21 09:43:57 +02:00
Dan
35e3471961 The restriction_reason field is not always available 2018-10-21 09:43:22 +02:00
Dan
1fe46610cd Make plugins disabled by default
Users need to explicitly set plugins_dir parameter
2018-10-21 09:42:22 +02:00
Dan
b12c87f50a Make kick_chat_member return the "user kicked" message 2018-10-21 09:40:49 +02:00
Alexandr
ee47c21eed Add file size limit error 2018-10-19 23:39:29 +07:00
Dan
3f0a355f7e Further optimize and simplify the Dispatcher 2018-10-19 11:54:27 +02:00
Dan
09e0345868 Small dispatcher clean ups 2018-10-18 21:18:22 +02:00
Dan
89362ef684 Tiny fix to reflect other docstrings 2018-10-18 11:48:55 +02:00
Dan
e88972a8f6 Add restriction_reason to User and Chat types. Closes #144 2018-10-18 11:10:37 +02:00
Dan
38ff950d01 Remove useless #noinspection 2018-10-17 21:00:14 +02:00
Dan
426cdbbcb8 Don't make use of Update objects when dispatching updates
The Update type is used nowhere, adds costly abstraction and makes the
code uglier. If I ever need it again (unlikely) I can just revert this.
2018-10-17 20:59:33 +02:00
Dan
a315c30336 Optimize dispatcher.py code 2018-10-17 20:37:53 +02:00
Dan
41180fd22a Update max caption length 2018-10-16 15:24:54 +02:00
Dan
3d8a386e25 Merge branch 'develop' into asyncio 2018-10-16 12:58:22 +02:00
Dan
c8604e8e2c Update on_user_status decorator 2018-10-16 12:58:11 +02:00
Dan
418eb0b01a Fix asyncio dispatcher 2018-10-16 12:38:50 +02:00
Dan
f45e3377a9 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/methods/users/delete_user_profile_photos.py
2018-10-16 12:20:46 +02:00
Dan
9e159a3f50 Merge branch 'plugins' into develop 2018-10-16 12:12:21 +02:00
Dan
8a81bd1221 Merge branch 'user-status' into develop 2018-10-16 12:07:53 +02:00
Dan
c7a38655c4 Merge branch 'update-profile-photo' into develop 2018-10-16 11:59:17 +02:00
Dan
841141077f Add better examples to Filters.command 2018-10-16 11:53:05 +02:00
Dan
22998af784 Fix docstrings 2018-10-16 11:45:39 +02:00
Dan
29201674ef Rename delete_profile_photos to delete_user_profile_photos
For consistency with other method names
2018-10-16 11:45:20 +02:00
Dan
8fc5b8a545 Rename set_profile_photo to set_user_profile_photo 2018-10-16 11:43:54 +02:00
Dan
c94c79edac Implement InlineQueryResultCachedAudio 2018-10-16 11:34:44 +02:00
Dan
797a0df087 Implement InlineQueryResultPhoto 2018-10-15 15:04:49 +02:00
Dan
c8fc995c83 No need to inherit from Object 2018-10-15 14:31:16 +02:00
Dan
0a057cc233 Expose new types and methods 2018-10-15 14:30:12 +02:00
Dan
350265aaae Add answer_inline_query method 2018-10-15 14:29:58 +02:00
Dan
c5cedd880d Allow Markdown and HTML styles to work on an empty dict.
For inline results. User mentions are disabled this way
2018-10-15 14:29:23 +02:00
Dan
e59d07af1e Add missing InlineQueryResultArticle 2018-10-15 14:28:11 +02:00
Dan
59c3aa0589 Inject reply_markup 2018-10-15 14:25:02 +02:00
Dan
d6c0e61456 Add InputTextMessageContent type 2018-10-15 14:24:33 +02:00
Dan
dd642f5b9d Add scraped inline query results 2018-10-15 11:34:27 +02:00
Dan
93018a7f6c Add set_profile_photo method 2018-10-15 11:03:07 +02:00
Dan
c37dcb07cf Add parse_inline_query util method 2018-10-15 10:50:17 +02:00
Dan
a9fe0fffc6 Add InlineQuery type 2018-10-15 10:48:07 +02:00
Dan
5b17376801 Enable dispatching of user status updates 2018-10-15 10:18:22 +02:00
Dan
d567b878b1 Expose UserStatusHandler and on_user_status 2018-10-15 10:17:00 +02:00
Dan
2eae08aaa6 Add on_user_status decorator 2018-10-15 10:16:19 +02:00
Dan
ff9be53a95 Add UserStatusHandler class 2018-10-15 10:14:40 +02:00
Dan
471b5c3334 Add user_status field to Update class 2018-10-15 10:10:49 +02:00
Dan
4b04910197 Add user_id field to UserStatus 2018-10-15 10:08:56 +02:00
Dan
79a9ddfab5 Some more changed in order to enhance UserStatus API design 2018-10-15 10:07:46 +02:00
Dan
b2b599e211 Rework user status parsing to also accommodate user_status updates 2018-10-15 09:47:47 +02:00
Dan
86e4fc4e62 Rename last_seen field to status in User class
Also add docstrings for status
2018-10-15 09:20:13 +02:00
Dan
b00604dbc9 Move date field 2018-10-14 18:00:31 +02:00
Dan
2d65eb3dc7 Add UserStatus docstrings 2018-10-14 17:56:51 +02:00
Dan
c9ce188bbe Remove "bot" property from UserStatus 2018-10-14 17:56:10 +02:00
Dan
69c1532eae Rename LastSeen to UserStatus
It will make more sense later on when I add UserStatus updates
handler.
2018-10-14 17:17:50 +02:00
Dan
7b369a73bb Add parse_last_seen util method 2018-10-14 17:11:27 +02:00
Dan
d2f47d7e59 Add last_seen field to User parse_last_seen 2018-10-14 17:11:01 +02:00
Dan
465dcac630 Create LastSeen class 2018-10-14 17:08:49 +02:00
Dan
b79df81f14 Allow specifying more than one prefix in Filters.command 2018-10-14 14:24:53 +02:00
Dan
f4146a8779 Accept None as plugins_dir 2018-10-13 19:33:43 +02:00
Dan
8e238ccc9a Add plugins_dir docstrings in Client class definition 2018-10-13 11:14:26 +02:00
Dan
96b39970d6 Allow on_callback_query to be used as a static decorator 2018-10-13 10:55:41 +02:00
Dan
6fdb90e4a4 Allow on_deleted_messages to be used as a static decorator 2018-10-13 10:54:13 +02:00
Dan
54296a6fda Allow on_disconnect to be used as a static decorator 2018-10-13 10:47:39 +02:00
Dan
1fdc757f2a Allow on_raw_update to be used as a static decorator 2018-10-13 10:46:29 +02:00
Dan
345ac6e16a Merge branch 'develop' into plugins 2018-10-13 10:42:07 +02:00
Dan
9649b1457c Don't make use of hardcoded default int values too 2018-10-13 10:41:58 +02:00
Dan
340fb9c145 Merge branch 'develop' into plugins
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/ext/base_client.py
2018-10-13 10:39:47 +02:00
Dan
a32009a79d Don't make use of hardcoded default string values 2018-10-13 10:38:44 +02:00
Dan
6a0066b8b5 Move loading plugins logic into a separate method 2018-10-12 17:57:34 +02:00
Dan
4bb50ee35f More logs when loading plugins 2018-10-12 17:54:52 +02:00
Dan
6c05f9ff42 Sanitize (a bit) plugins directory 2018-10-12 15:26:52 +02:00
Dan
4e516d097f Don't raise exceptions in case of non-existent plugins folder
Don't even warn in case the default plugins folder doesn't exist
2018-10-12 14:32:35 +02:00
Dan
0b79f96b4f Turn hardcoded plugins dir into a constant 2018-10-12 14:19:26 +02:00
Dan
dfb841baa9 Automatically scan and load plugins from a customizable directory
Defined functions found inside the directory that are also decorated
properly will be registered in the Client's dispatcher as handlers.
2018-10-12 14:17:03 +02:00
Dan
0025489c86 Allow on_message to behave like a static decorator
This enabled usages like @Client.on_message(...).
To preserve positional arguments order and thus ease the static
decorator usage there's a not-so-elegant hack in place that shifts
values.
2018-10-12 14:12:29 +02:00
Dan
e5f233b01e Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/dispatcher/dispatcher.py
#	pyrogram/client/ext/utils.py
2018-10-09 16:38:28 +02:00