Commit Graph

1385 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
e400641204 Fix Dispatcher bad behaviours in case of multiple Clients running at the same time. 2018-11-13 20:31:53 +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
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
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
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
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
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
Furoin
bc703ae6d7 added Filters.dan 2018-11-03 14:57:57 +03: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
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
99bdaae365 Allow nested folders for smart plugins 2018-10-23 15:43:49 +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
c8604e8e2c Update on_user_status decorator 2018-10-16 12:58:11 +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
acd525294f Add CallbackQuery.answer bound method 2018-10-09 14:08:01 +02:00
Dan
1be144288c Add a proxy to the Client instance inside CallbackQuery objects 2018-10-09 14:07:01 +02:00
Dan
89a167b51f Update default rights to the least common between supergroups & channels
Fixes #120
2018-10-01 10:52:09 +02:00
Dan
0162cf48c1 Don't break groups in case one handler raises an unhandled exception
The error is logged instead. Fixes #126
2018-10-01 09:55:09 +02:00
Dan
b79bd1ea83 Don't swallow left_chat_member updates
Even though they are only relevant for supergroups with <50 members
2018-10-01 09:45:32 +02:00
Dan
12c61fb431 Fix unwanted CHANNEL_PRIVATE errors. Fixes #129 2018-10-01 09:40:34 +02:00
Dan
6a89c7ea02 Add missing ipv6 docstrings 2018-09-22 14:21:55 +02:00
Dan
61a2ad812e Add missing docstrings for edit_message_media 2018-09-20 16:33:36 +02:00
Dan
3a858e6a57 Fix config values not being available when not using config.ini file 2018-09-19 17:30:23 +02:00
Dan
9538ed85fe Fix missing backtick 2018-09-19 13:20:36 +02:00
Dan
8b364202c3 Use list instead of set 2018-09-18 19:17:28 +02:00
Dan
500ec09b47 Clean up load_config 2018-09-18 19:16:55 +02:00
Dan
42ea51cb77 Make send_document and send_video_note accept a thumbnail
#119
2018-09-18 11:38:00 +02:00
Dan
61e6e58be7 Reword send_animation's thumb parameter description 2018-09-18 11:36:52 +02:00
Dan
28af5e14b4 Add "thumb" field for all InputMedia types except Photo 2018-09-18 11:36:20 +02:00
Dan
19d04ca94f Reword Audio thumb description 2018-09-18 11:35:19 +02:00
Dan
f850d6352e Enhance API by adding support for Context Managers. Closes #122
A batch script would be as simple as this example:

from pyrogram import Client

with Client("...") as app:
    app.send_message("haskell", "hi")
2018-09-17 18:53:04 +02:00
Dan
e7a85520f2 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	pyrogram/client/client.py
2018-09-17 15:59:49 +02:00
Dan
c75a4f182a
Handle Telegram exceptions on start(). Fixes #121
The client doesn't need to be stopped as it never started successfully.
2018-09-15 13:23:25 +02:00
Dan
edfdf9d143 Small docstring fixes 2018-09-14 15:34:00 +02:00
Dan
3307b410b4 Give superpowers to Filters.chat too
It can now add and remove chats at runtime
2018-09-14 15:33:32 +02:00
Dan
339630dafb Add noinspection PyPep8Naming for Filters.user 2018-09-14 15:29:56 +02:00
Dan
31578ddb33 Give Filters.user superpowers
It can now add and remove users at runtime
2018-09-14 15:29:36 +02:00
Dan
4e293f23a9 Make handlers test whether filters are callable and not if they exist 2018-09-14 15:28:08 +02:00
Dan
b893698f1e Add ability to add/remove users from the user filter.
Use .users to access the inner set of users
2018-09-14 14:37:04 +02:00
Dan
eb8513e009
Update send_video docstrings
Add a more detailed "thumb" description
2018-09-12 08:26:13 +02:00
Dan
6a4bf23b09
Update send_audio docstrings 2018-09-12 08:14:49 +02:00
Dan
ea39062d2d Add get_chat_members_count method 2018-09-08 19:16:51 +02:00
Dan
db6042e91b Fetch ChatForbidden and ChannelForbidden peers
This fixes unwanted PEER_ID_INVALID errors in cases where a user or a
bot was kicked/banned from a group, supergroup or channel
2018-09-02 13:04:29 +02:00
zeroone2numeral2
d5ca99dfff Allow to set audio thumbnail when using send_audio
With the Bot API 4.0 update (https://core.telegram.org/bots/api#july-26-2018), sendAudio allows bots to pass a thumbnail - making it possible for pyrogram to include a 'thumb' parameter in its convenience method 'send_audio'
2018-08-30 11:50:09 +02:00
Dan
9f4d7854e8 Fix ipv6 branch merge mess 2018-08-30 01:23:19 +02:00
Dan
4b3b647245 Merge branch 'ipv6' into develop
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/session/session.py
2018-08-28 12:19:37 +02:00
Dan
2779e33d13 Rename "token" to "bot_token" 2018-09-10 19:55:53 +02:00
Dan
caecbef2f6 Add phone_number type of entity to docs 2018-08-24 16:03:52 +02:00
Dan
2617618cef Add support for Document message edits 2018-08-23 21:21:27 +02:00
Dan
03b17d5bce Fix clickable link 2018-08-21 21:18:06 +02:00
Dan
2d8792a7cd Move get_dialogs() from "messages" to "chats" namespace 2018-08-20 11:24:47 +02:00
Dan
9c0f8b2f3b Document get_dialogs() method 2018-08-20 11:24:00 +02:00
Dan
088a4c35c9 Add is_pinned attribute to Dialog 2018-08-20 02:12:21 +02:00
Dan
21d914e414 Remove unused constant 2018-08-19 19:40:23 +02:00
Dan
493fc4a658 Document Filters.create() method 2018-08-19 17:24:24 +02:00
Dan
ed05c56f52 Clearer Filters docs. Add create to Filters' namespace 2018-08-19 17:22:28 +02:00
Dan
0c77fe91fe Add TODO 2018-08-17 12:17:54 +02:00
Dan
7f1dd6d67e Rename "build" to "create" (friendlier name) 2018-08-17 02:17:48 +02:00
Dan
6879a4da9b Update vcard docstrings for Contact type and send_contact method 2018-08-15 22:33:01 +02:00
Dan
49e2e529e1 Add parameter foursquare_type to send_venue method 2018-08-14 14:36:01 +02:00
Dan
25662748cf Add foursquare_type to Venue 2018-08-14 14:25:54 +02:00
Dan
ec0d6dd6e0 Add support for animations in edit_message_media 2018-08-14 14:14:03 +02:00
Dan
4fe9cffc32 Code style fix 2018-08-13 22:06:43 +02:00
Dan
85c50ef4dd Add phone_number message entity 2018-08-13 22:06:20 +02:00
Dan
ece50e5f9b Rename Filters.gif to Filters.animation 2018-08-12 13:30:54 +02:00
Dan
9c7de81d82 Fix relative imports 2018-08-10 11:30:36 +02:00
Dan
7162850523 Export Utility methods 2018-08-10 11:29:55 +02:00
Dan
da436461a8 Revert "Move resolve_peer into utilities"
This reverts commit 6437c6c
2018-08-10 11:29:13 +02:00
Dan
ef6f080546 Revert "Export resolve_peer"
This reverts commit dd422c0
2018-08-10 11:29:05 +02:00
Dan
dd422c0edf Export resolve_peer 2018-08-10 11:18:28 +02:00
Dan
6437c6c5be Move resolve_peer into utilities 2018-08-10 11:17:53 +02:00
Dan
42d3b467fb Fix init not having message and media types 2018-08-10 11:17:21 +02:00
Dan
4e6add7a70 Fix download_media referencing to gif instead of animation 2018-08-10 11:16:57 +02:00
Dan
61663b3dde Add new utilities folder 2018-08-10 11:16:31 +02:00
Dan
888b3cc6aa Add missing import 2018-08-09 21:55:06 +02:00
Dan
2b4138ee30 Add new folder for messages and media related types 2018-08-09 21:53:49 +02:00
Dan
3a5dc20fb5 Rename reply_markup to bots 2018-08-09 21:51:43 +02:00
Dan
a93f98cfa6 Create a new sub-folder for bot related types 2018-08-09 21:51:00 +02:00
Dan
eeb3b67d37 Create a new sub-folder for user and chat types 2018-08-09 21:49:14 +02:00
Dan
88d45b085b Move InputMedia types in a dedicated folder 2018-08-09 21:46:14 +02:00
Dan
4b7e22aedd Rename file 2018-08-07 01:25:34 +02:00
Dan
2b793dd2a1 Refactor send_gif. It is now called send_animation 2018-08-07 01:23:52 +02:00
Dan
b1c12c3232 Rename GIF to Animation 2018-08-06 21:38:44 +02:00
Dan
6cc87d50c9 Rename media type id to animation 2018-08-06 21:32:38 +02:00
Dan
f7c2dc9d30 Add support for editing messages with Audio 2018-08-05 10:25:37 +02:00
Dan
9e5976e755 Fix InputMediaAudio copy pasta 2018-08-05 10:15:53 +02:00
Dan
9f725a6bfb Add support for editing videos using external URLs and file IDs 2018-08-04 01:27:02 +02:00
Dan
f3074f04b0 Add ability to edit video messages 2018-08-04 01:23:31 +02:00
Dan
51eb2f90b9 Add support for editing photousing file IDs 2018-08-03 18:38:26 +02:00
Dan
a3be6a9355 Add support for editing photos with external URLs 2018-08-03 18:38:04 +02:00
Dan
8d35559f0b Return the higher-level Message object instead of the raw update 2018-08-03 18:37:10 +02:00
Dan
6015a14182 Add ability to edit photos by uploading new files 2018-08-03 18:36:38 +02:00
Dan
e7b27c2c21 Expose edit_message_media method 2018-08-02 01:12:31 +02:00
Dan
ea0a75bfd7 Add edit_message_media method 2018-08-02 01:10:29 +02:00
Dan
92fdf79d54 Expose the new InputMedia types 2018-08-01 21:19:11 +02:00
Dan
c625756747 Add InputMediaDocument 2018-07-31 00:29:10 +02:00
Dan
570128d980 Add InputMediaAnimation 2018-07-31 00:25:41 +02:00
Dan
5bc9be0858 Add InputMediaAudio 2018-07-31 00:14:21 +02:00
Dan
2a985e7545 Make InputMediaVideo inherit from InputMedia 2018-07-30 23:01:43 +02:00
Dan
486c9433ac Make InputMediaPhoto inherit from InputMedia 2018-07-30 23:01:14 +02:00
Dan
9d9fc1f94f Add InputMedia base class 2018-07-30 22:59:30 +02:00
Dan
d270d0d2aa Remove support for t.me/joinchat/ links in resolve_peer for now
Another way, which is 100% reliable, will be implemented
Also clean the method a bit by removing useless checks
2018-07-28 23:09:44 +02:00
Dan
32468e5ab0 Remove hints about using t.me/joinchat/ links as chat ids
Such links don't work reliably with the current implementation
2018-07-27 00:40:08 +02:00
Dan
f4175b041c Document ChatMembers 2018-07-26 19:34:21 +02:00
Dan
e9cba4609a Update get_chat_member docstrings 2018-07-26 19:32:12 +02:00
Dan
215f54f32b Add get_chat_member documentation 2018-07-22 02:07:44 +02:00
Dan
1eaafb8e41 Clearer documentation for get_chat_members 2018-07-21 14:09:34 +02:00