Commit Graph

625 Commits

Author SHA1 Message Date
Dan
8454d438be Refactor the project by using Mixin classes
This will cut client.py down from ~4k to ~1k SLOC and also
makes the whole project tidier and more organized.
2018-05-07 14:30:55 +02:00
Dan
f5521370bb Add progress_args to download_media as well 2018-05-06 15:45:42 +02:00
Dan
00420aec92 Use the already computed channel_id 2018-05-06 15:06:32 +02:00
Dan
9f3f4099d5 Handle timeouts when getting answers from inline bots 2018-05-05 19:42:38 +02:00
Dan
553e7f714c Add get_chat method 2018-05-05 18:42:28 +02:00
Dan
68986171ef Add photo_id 2018-05-05 18:11:14 +02:00
Dan
ef45288419 Change chat photo media id 2018-05-05 16:51:01 +02:00
Dan
7a79e5a0c4 Add media type 1 2018-05-04 18:37:36 +02:00
Dan
14b6ced6e2 Remove unused import 2018-05-03 15:47:02 +02:00
Dan
cd9f2223e7 Some little fixes in case of ChatForbidden. Thanks @i-Naji 2018-05-03 15:45:57 +02:00
Dan
afc2a2e35d Use weakref proxy instead of ref 2018-05-03 15:44:55 +02:00
Dan
58952a7d98 Temporarily remove the debug feature 2018-05-02 23:06:22 +02:00
Dan
02ec86f4b2 Respect users' logger level, don't set to WARNING 2018-05-02 22:36:56 +02:00
Dan
32336a9bda Fix links 2018-05-02 16:00:48 +02:00
Dan
f29b8bb7e4 Cache the session right after they start. Related to #68
@EriHoss is right, the session can know how to clean itself in
case for some reason it fails to start, hence it makes much more
sense to cache sessions right after they start. Also, clear the
media_sessions dict when stopping to get rid of closed sessions.
2018-05-01 21:08:47 +02:00
Dan
1dc43064fb Add a weakref to client instead 2018-05-01 20:40:47 +02:00
Dan
1b48f850bf Add new sessions to the media_sessions dict before starting them 2018-05-01 20:25:35 +02:00
Dan
83febf2e0c Cache media sessions. Related to #40. Fixes #68 2018-05-01 18:15:33 +02:00
Dan
943691fd18 Remove useless attribute 2018-05-01 11:52:14 +02:00
Dan
11aa46665e
Merge pull request #69 from EriHoss/stop_getfile_sessions
Make sure started Session is always stopped upon exceptions in Client.get_file
2018-05-01 11:45:51 +02:00
Eric Blundell
11d0eb6ea1 Make sure Session is always stopped upon exceptions in Client.get_file 2018-05-01 01:39:58 -05:00
Dan
2e81a2369d Make download_media hint string as acceptable type 2018-04-30 20:25:45 +02:00
Dan
35e1a76cef Fix pycharm warnings 2018-04-30 19:53:03 +02:00
Dan
47d5889612 Make ChatAction.from_string() static 2018-04-30 19:44:26 +02:00
Dan
a32e496fe3
Merge pull request #67 from JosXa/chataction-enum
Make ChatAction an Enum
2018-04-30 19:39:33 +02:00
Dan
fcb4c6d07b
Update client.py 2018-04-30 19:37:59 +02:00
Dan
9b9c7ced77
Update chat_action.py 2018-04-30 19:34:59 +02:00
Dan
4d81e6894d Make optional word italic 2018-04-30 19:30:16 +02:00
Dan
95bcfd9b26 Document reply_markup parameter 2018-04-30 19:28:16 +02:00
Dan
bfe6632de4 Fix index out of range for new messages 2018-04-30 19:21:58 +02:00
Dan
a7650c457d Add progress_args parameter 2018-04-30 19:09:57 +02:00
JosXa
33dd708831 enumeration "class" 2018-04-30 16:36:18 +02:00
JosXa
5b492bae9d Docstring 2018-04-30 16:32:21 +02:00
JosXa
abf89688ed Also allow strings for send_chat_action 2018-04-30 16:28:43 +02:00
JosXa
e2d80a6087 Made ChatAction an Enum 2018-04-30 16:11:50 +02:00
JosXa
72e95fd322 Made ChatAction an Enum 2018-04-30 16:03:18 +02:00
Dan
e6b4f0e743 Make delete_messages accept iterables 2018-04-30 14:25:11 +02:00
Dan
b41c009962 Make forward_messages accept iterables 2018-04-30 14:24:05 +02:00
Dan
59ab1591d2 Make get_users accept iterables 2018-04-30 14:22:13 +02:00
Dan
8f8e1cfa25 Make get_messages accept iterables 2018-04-30 14:18:13 +02:00
Dan
53b0736975 Make add_handler return (handler, group) tuple 2018-04-30 13:31:11 +02:00
Dan
deed74840a Make send_message return the correct Message type 2018-04-30 13:13:30 +02:00
Dan
e2224054d2 Merge branch 'remove-handler-and-locks' of https://github.com/JosXa/pyrogram into JosXa-remove-handler-and-locks
# Conflicts:
#	pyrogram/client/dispatcher/dispatcher.py
2018-04-30 10:30:34 +02:00
Dan
f824e69b5a
Update client.py 2018-04-30 10:15:34 +02:00
JosXa
bb607e56be Added locks for modifying and iterating handlers
Added `remove_handler` method
Made `add_handler` return a (handler, group) tuple
2018-04-30 00:15:24 +02:00
Dan
33c417942c Clear thread lists when stopping. Related to #62 2018-04-29 20:20:34 +02:00
Dan
2c253b2fbc Cleanup docstrings and add some entries to the docs 2018-04-29 19:24:06 +02:00
Dan
d3472fd052 Add CallbackQuery to docs 2018-04-29 19:06:35 +02:00
Dan
4eed293933 Document on_callback_query 2018-04-29 18:46:35 +02:00
Dan
c32e1d9444 Document answer_callback_query 2018-04-29 18:37:03 +02:00
Dan
99a2c54992 Small fixes 2018-04-29 18:36:55 +02:00
Dan
4918be5d22 Add edit_message_reply_markup method 2018-04-29 18:31:29 +02:00
Dan
ac9a263f3d Add reply_markup argument for edit_message_* methods 2018-04-29 18:31:15 +02:00
Dan
34d7f3372f Rework delete_messages 2018-04-29 18:13:50 +02:00
Dan
b8996b1147 Remove chat field for now, it can be accessed via message.chat 2018-04-29 17:29:48 +02:00
Dan
d6bdf5f38b Fix typo 2018-04-29 17:29:46 +02:00
Dan
9c7935702f Add callback query support 2018-04-28 23:48:38 +02:00
Dan
c1459aa22c Add get_users method 2018-04-28 13:24:54 +02:00
Dan
4f937b2220 Add reply_markup parameter to all send_* methods 2018-04-28 09:53:21 +02:00
Dan
489bd4ac38 Remove message_parser, move all functions in utils 2018-04-28 09:38:07 +02:00
Dan
dafc574bd5 Remove a stupid comma that made "command" act like a tuple 2018-04-28 09:33:37 +02:00
Dan
3b314c92fb Move IDs at the bottom 2018-04-28 09:09:44 +02:00
Dan
01034c174a Make get_user_profile_photos return the correct type 2018-04-28 09:04:45 +02:00
Dan
750caa7471 Fix reply keyboard markup writing 2018-04-28 08:47:32 +02:00
Dan
18e414e2c1 Add TODO 2018-04-27 20:13:19 +02:00
Dan
e81ef5a757 Users are now able to view keyboards from bots 2018-04-27 20:11:36 +02:00
Dan
f6b0e0e0dc Initial support for Reply Markups 2018-04-27 19:04:16 +02:00
Dan
0ffad5d18e Cast file_total_parts to int
For some reason pycharm is thinking math.ceil() is returning a float
2018-04-27 15:24:27 +02:00
Dan
83dc5f7a03 Fix proxy failing when omitting optional arguments 2018-04-27 12:50:34 +02:00
Dan
2874be05ff Limit replies for pinned messages. Related to #61 2018-04-26 14:17:43 +02:00
Dan
dcbce9f9a1 Add client field in Message 2018-04-26 12:10:54 +02:00
Dan
bd0fc27a61 Add support for blocked channels/supergroups. Fixes #56 2018-04-26 11:09:19 +02:00
Dan
4cb7733821 Regression fix: limit replies to 1 (Closes #61) 2018-04-26 10:50:30 +02:00
Dan
0ed38518e1 Some stickers don't have DocumentAttributeImageSize 2018-04-25 18:30:33 +02:00
Dan
e22f7896f8 Add incoming and outgoing filters 2018-04-25 17:44:09 +02:00
Dan
3e4135c8e1 New "outgoing" field to easily tell in/out messages apart 2018-04-25 15:27:16 +02:00
Dan
fefcb81dde Move object ids ot the top 2018-04-25 10:30:33 +02:00
Dan
9173c49938 Allow Filters.command to pass command and arguments
This is done by using the new "command" field in the Message type
2018-04-25 10:27:55 +02:00
Dan
e5de670d40 Allow Filters.regex to pass all matches (as list)
This is done by using the new "matches" field in the Message type
2018-04-25 09:33:44 +02:00
Dan
7a20c8bca8 Clean all types and add docs 2018-04-24 16:41:52 +02:00
Dan
6e78935857 Accommodate the new types 2018-04-24 16:08:33 +02:00
Dan
59bca1c109 Clean ChatMember type 2018-04-24 15:10:15 +02:00
Dan
c457fc6ae3 Clean ChatPhoto type 2018-04-24 15:07:32 +02:00
Dan
d8f7f3bcc9 Clean UserProfilePhotos type 2018-04-24 15:06:54 +02:00
Dan
a52d4846e6 Clean Venue type 2018-04-24 15:05:51 +02:00
Dan
ba254e6643 Clean Location type 2018-04-24 15:05:08 +02:00
Dan
d10326605f Clean Contact type 2018-04-24 15:04:25 +02:00
Dan
76980ffc96 Clean Sticker type 2018-04-24 15:02:58 +02:00
Dan
5f7dd681f4 Clean VideoNote type 2018-04-24 15:00:36 +02:00
Dan
48284e7629 Clean Voice type 2018-04-24 14:57:22 +02:00
Dan
be8f0ad765 Clean Video type 2018-04-24 14:55:29 +02:00
Dan
7765942fc9 Clean Document type 2018-04-24 14:52:43 +02:00
Dan
d5ebeef4be Clean Audio type 2018-04-24 14:50:23 +02:00
Dan
38621f8239 Clean PhotoSize type 2018-04-24 14:44:50 +02:00
Dan
fe0f30b2f9 Clean MessageEntity type 2018-04-24 14:40:49 +02:00
Dan
79c3c8c0dd Clean Message type 2018-04-24 14:38:46 +02:00
Dan
3609d37752 Clean Chat type 2018-04-23 19:25:38 +02:00
Dan
b8473c9f7f Clean User type 2018-04-23 19:00:20 +02:00
Dan
730d5e74f0 Clean Update type 2018-04-23 18:56:06 +02:00
Dan
50252caec3 Move pyrogram types outside and make them static 2018-04-23 18:50:58 +02:00
Dan
debc459686 Return the correct message type with forward_messages() 2018-04-23 18:33:20 +02:00
Dan
88f7b35120 Add support for empty messages 2018-04-23 18:16:32 +02:00
Dan
f6415cdc15 Allow passing msg ids as int in get_messages()
Also add support for empty messages
2018-04-23 18:15:51 +02:00
Dan
a2640775dc Allow passing msg ids as int in forward_messages() 2018-04-23 13:49:31 +02:00
Dan
3d9b1cd4b0 Enable logging using debug=True 2018-04-23 13:37:50 +02:00
Dan
7054310138 Add docstrings for workdir parameter 2018-04-22 12:41:50 +02:00
Eric Blundell
40b768e97c Make Client.signal_handler reentrant (#57) 2018-04-21 20:50:30 +02:00
Dan
ae98732b95 Add workdir parameter
This makes possible to define a custom working directory.
A working directory is used to store session files. Defaults to "."
2018-04-19 10:06:41 +02:00
Dan
d6448c2044 Handle STICKERSET_INVALID error 2018-04-18 16:39:42 +02:00
Dan
0bba5daea4 Update docstrings 2018-04-18 11:15:09 +02:00
Dan
9dff99cf36 Add set_name and emoji to Stickers 2018-04-17 15:17:40 +02:00
Dan
d78dfb4f9e Don't use raw functions when getting messages 2018-04-17 00:26:30 +02:00
Dan
ebe806e2b7 Add missing notice 2018-04-16 21:07:02 +02:00
Dan
f9b1d02af4 Set correct link for the Message type 2018-04-16 13:28:53 +02:00
Dan
a547eb6fa1 Update get_messages docstrings 2018-04-16 12:52:32 +02:00
Dan
e210b22aaa Fix wrong users when joining by link 2018-04-16 12:43:02 +02:00
Dan
f47f903f7f Make get_messages return the correct type 2018-04-16 12:42:31 +02:00
Dan
d0ddb63830 Use raw functions when getting messages 2018-04-16 12:19:04 +02:00
Dan
06685cfe15 Make edit_message_caption return the new type 2018-04-16 12:03:31 +02:00
Dan
fbc8cafe4d Make edit_message return the new type 2018-04-16 12:01:42 +02:00
Dan
20bd4fb605 Make send_contact return the new type 2018-04-16 11:56:52 +02:00
Dan
797e8ba4e9 Don't pass empty last_name or user_id, pass None instead 2018-04-16 11:56:43 +02:00
Dan
58c9f321b4 Make send_venue return the new type 2018-04-16 11:53:38 +02:00
Dan
4bbdadaa17 Don't pass an empty string, use None instead 2018-04-16 11:53:26 +02:00
Dan
cd9f44183e Make send_location return the new type 2018-04-16 11:51:32 +02:00
Dan
b4b5373505 Deprecate download_photo 2018-04-16 11:49:00 +02:00
Dan
d9b3d67126 Update download_media docstrings 2018-04-16 11:44:05 +02:00
Dan
fdac67de69 Rework download_media to accept the new Message type 2018-04-16 01:07:02 +02:00
Dan
6275a4003f Add mime_type, file_name and date to Sticker objects 2018-04-16 00:59:41 +02:00
Dan
ddfce4b7ea Add file_name, mime_type and date to VideoNote objects 2018-04-16 00:30:49 +02:00
Dan
f35d922c97 Add thumb, file_name and date to Voice type 2018-04-16 00:24:43 +02:00
Dan
7184710948 Add file_name and date fields to Video objects 2018-04-16 00:01:27 +02:00
Dan
44dda8550f Add date field to Document type 2018-04-15 23:54:46 +02:00
Dan
e08e2850ee Add thumb, date and file_name to Audio type 2018-04-15 23:51:10 +02:00
Dan
d5f3684310 Add date field for PhotoSize 2018-04-15 23:30:40 +02:00
Dan
d9fdd89c49 Add ChatPhoto to User objects 2018-04-15 22:28:08 +02:00
Dan
ab1d780a61 Add ChatPhoto to Chat objects 2018-04-15 22:23:58 +02:00
Dan
94c9e7c52b Add some TODOs 2018-04-14 21:55:23 +02:00
Dan
b705391f79 Enhance send_media_group by accepting file_ids 2018-04-14 21:48:15 +02:00
Dan
5e26ae1894 Enhance send_video_note by accepting file_ids 2018-04-14 20:49:16 +02:00
Dan
c52ecadb76 Enhance send_voice by accepting file_ids and URLs 2018-04-14 20:42:32 +02:00
Dan
1fdb3386ff Enhance send_video by accepting file_ids and URLs 2018-04-14 20:41:23 +02:00
Dan
4f615bd6dc Enhance send_sticker by accepting file_ids and URLs 2018-04-14 19:56:11 +02:00
Dan
8446129003 Enhance send_document by accepting file_ids and URLs 2018-04-14 19:48:15 +02:00
Dan
0dd5ebef80 Fix raw update handler throwing errors 2018-04-14 16:59:34 +02:00
Dan
e8193435a9 Fix service filter and add media filter 2018-04-14 14:02:48 +02:00
Dan
17259d1b7b Join threads before closing the connection 2018-04-13 19:09:00 +02:00
Dan
e3c70c84ba Merge branch 'master' into new-api 2018-04-13 18:55:20 +02:00
Dan
83c4ba8a78 Handle flood wait when getting dialogs chunks 2018-04-13 18:53:55 +02:00
Dan
70173adca9 Iterate over copies 2018-04-13 18:35:36 +02:00