Commit Graph

1941 Commits

Author SHA1 Message Date
Dan
1609efbfbc Add .bind() method to re-enable bound-methods after deserialization 2019-10-27 09:53:40 +01:00
Dan
8e9e8b4ac4 Allow stop, restart and add/remove_handler to be non-blocking 2019-10-27 09:37:28 +01:00
Dan
e74521b1cc Fix deserialization of pretty-printable lists 2019-10-24 15:09:20 +02:00
Dan
87512e20c3 Tiny copy-paste fix 2019-10-19 16:36:45 +02:00
Dan
85e08f774d Merge branch 'develop' of https://github.com/pyrogram/pyrogram into develop 2019-10-19 16:35:54 +02:00
Тоша
cedb87ef41 Add is_creator field to Chat object (#306)
* Add is_creator field to Chat object

* Update chat.py
2019-10-19 16:35:26 +02:00
Dan
51cd186559 Fix group, channel and supergroup ChatPhoto downloads
Closes #326
2019-10-19 16:24:23 +02:00
Dan
2482358484 Fix delete_profile_photos 2019-09-29 12:53:26 +02:00
Dan
da7130b380 Update Pyrogram to v0.16.0 2019-09-25 19:12:27 +02:00
Dan
91d3508c13 Rename encode/decode to encode/decode_file_id 2019-09-21 22:17:42 +02:00
Dan
92c1b48132 Fix FILE_REFERENCE_* errors for uploads 2019-09-21 22:13:02 +02:00
Dan
1cd94520bf Fix FILE_REFERENCE_* errors for downloads 2019-09-21 21:12:11 +02:00
Dan
26bf84e43d Don't try to parse ChatPhoto objects in case peer_access_hash is None 2019-09-14 20:58:53 +02:00
Dan
ff9407aba1 Implement a storage update mechanism (for FileStorage)
The idea is pretty simple: get the current database version and for each
older version, do what needs to be done in order to get to the next
version state. This will make schema changes transparent to the user in
case they are needed.
2019-09-14 20:35:59 +02:00
Dan
1a7d0b1b7e Update Storage API usages in client.py, auth.py and session.py 2019-09-14 19:57:20 +02:00
Dan
0097df2952 Rework File and Memory storage to accommodate the new abstract class 2019-09-14 19:56:07 +02:00
Dan
1efce33070 Tiny SQL style fixup 2019-09-14 19:40:15 +02:00
Dan
e226bdbf89 Create SQLiteStorage for better abstraction 2019-09-14 19:39:47 +02:00
Dan
108fa08878 Update Storage abstract class 2019-09-14 19:39:21 +02:00
Dan
6d0e2f7312 Fix minified peers being erroneously stored because of server changes 2019-09-14 19:37:28 +02:00
Dan
840a9d1cc7 Update ChatPhoto parser 2019-09-14 19:30:07 +02:00
Dan
c5498c3b4e Rename Storage .destroy to .delete 2019-09-14 19:22:08 +02:00
Dan
2983a3b87a Workaround for SQLite VACUUM on Python 3.6.0 2019-09-09 15:45:19 +02:00
Dan
011375d0b2 Update docs link 2019-09-09 15:44:45 +02:00
Dan
71148758c9 Tiny documentation fixes 2019-09-09 15:42:38 +02:00
Dan
aaf0e82cdf Optimize join_chat code 2019-09-09 15:28:27 +02:00
Dan
80c7a6e988 Rename set_custom_title to set_administrator_title and clarify 2019-09-09 15:28:05 +02:00
Dan
a015f998fa Revert "Stop instantiating logger objects and directly use the logging module"
This reverts commit 792068d7
2019-09-08 19:24:06 +02:00
Dan
792068d7c8 Stop instantiating logger objects and directly use the logging module 2019-09-08 12:59:28 +02:00
Dan
481e4ee339 Set the updates workers pool from 1 to 4 2019-09-08 11:59:26 +02:00
Dan
25f2151151 Fix Restriction class not being exported 2019-09-08 11:58:58 +02:00
Dan
cfd756bd24 Add log_out method 2019-09-08 11:58:34 +02:00
Dan
c7782b146f Small code cleanup 2019-09-08 08:42:12 +02:00
Dan
c0298542a5 Add set_custom_title method 2019-09-07 17:08:30 +02:00
Dan
5b27b952c4 Add .title attribute for ChatMember objects (admins and owners only) 2019-09-07 17:08:00 +02:00
Dan
44a74b9d38 Add Filters.scheduled and Filters.from_scheduled 2019-09-07 15:57:12 +02:00
Dan
047fe37860 Add support for scheduled messages 2019-09-07 15:56:46 +02:00
Dan
c3dde77274 Fix ChatPhoto failing to parse in case the user is not known yet 2019-09-07 15:55:58 +02:00
Dan
5ce62bd79c Add new Restriction object and make User and Chat objects use it 2019-09-07 13:28:05 +02:00
Dan
f3b33ef1d5 Revert "Enhance Parser when dealing with leading and trailing whitespaces"
This reverts commit 8cdcf90b
2019-09-07 12:49:35 +02:00
Dan
3f4441d0f5 Merge branch 'develop' of https://github.com/pyrogram/pyrogram into develop 2019-09-07 12:48:15 +02:00
Dan
fb771441ed Merge branch 'layer-104' into develop 2019-09-07 12:47:25 +02:00
Dan
d15d38ba52
Don't pass the client to progress callbacks anymore 2019-09-03 15:45:47 +02:00
Dan
310810c320
Fix Message.click default parameters 2019-08-28 13:55:11 +02:00
Dan
0011d12be5 Fix set_chat_photo not working because of new file ids 2019-08-21 09:56:33 +02:00
Dan
77e4128d54 Merge branch 'new-file-id-format' into develop 2019-08-21 09:36:02 +02:00
ColinShark
b74a8eba5e Add bound method for get_common_chats (#305) 2019-08-20 10:12:55 +02:00
Dan
55f5a1a36c Fix IndexError when parsing empty nearby chats 2019-08-17 22:30:34 +02:00
Dan
95051d7fb1 Add get_nearby_chats method 2019-08-17 22:23:34 +02:00
Dan
74ecd2bb33 Add missing members_count attribute when parsing chats 2019-08-17 22:22:28 +02:00
ColinShark
9a94c8f0af Add get_common_chats method (#303)
* Add get_common_chats method

* Return properly formatted list

* Fix small format and docstring issues
2019-08-16 22:33:06 +02:00
Dan
dc74c441cc Drop Python 3.4 support (EOL). Bump minimum requirement to Python 3.5.3
Closes #302
2019-08-15 16:03:03 +02:00
Dan
4b914662ef Log the reason why a query ought to be re-tried 2019-08-13 13:20:21 +02:00
Dan
4de203a81c Add information about test/production servers when logging connections 2019-08-13 13:18:51 +02:00
Dan
7daf51af9b Split start() into reusable methods
This allows custom authorization processes to be implemented much more
easily. Refactors #281
2019-08-13 13:15:58 +02:00
Dan
e02b46ea4a Merge branch 'other_start' of https://github.com/adolfaka/pyrogram into adolfaka-other_start 2019-08-12 14:04:11 +02:00
Dan
b42c6581b8 Set default DC for new sessions to be DC2
Test servers don't have DC4
2019-08-12 13:00:07 +02:00
Dan
c1321a4c01 Add smarter auth import to deal with race conditions by multi sessions
- Add a retry mechanism (up to three times)
- Narrow the window in which export+import executes
- Remove a line of duplicated code

Fixes #299
2019-08-10 22:37:07 +02:00
Dan
72800554e6
Merge pull request #292 from mendelmaleh/shlex_split
Improvements for message.command
2019-08-10 00:55:48 +02:00
ColinShark
c9b1e09348 Add export_invite_link bound method (#300) 2019-08-10 00:54:22 +02:00
Dan
b55440ab86
Update Filters.command
- Remove negative lookahead to fix "\"" reporting commas
- Escape cmd when interpolating the pattern
- Remove the escape character from the arguments
- Return True when a valid command is found, return False at the end
2019-08-08 16:04:10 +02:00
trenoduro
5164ea78c2 Added support for bot_token inside config.ini file (#296) 2019-08-08 15:07:46 +02:00
Mendel E
7cabf922ea Filters.command improvements
- Use regex for case sensitivity
- Less indentation
- Ensure that the command returned is the correct case
- Ensure that if the command has more text, it is split by whitespace
2019-08-07 22:31:37 -04:00
Mendel E
c85f991443 Use regex for message.command 2019-08-07 11:38:34 -04:00
Mario A
2aefbfd531 Add better support for nested entities (both for HTML and Markdown) (#297)
* Added better support for nested entities, both for HTML and Markdown

* Tiny style fix

* Make use of pre-defined constants
2019-08-07 13:48:21 +02:00
Dan
82e0087def Always cast inline query ids to string 2019-08-06 01:02:41 +02:00
Dan
eeda40002d Better explanation of workdir Client parameter 2019-08-06 00:08:31 +02:00
Elliot Manson
31960d0272
Merge branch 'develop' into other_start 2019-08-04 16:28:20 +03:00
Dan
3dc2a81d72 Add Chat.description for basic chats 2019-08-03 19:54:14 +02:00
Dan
8a99f996ab Handle cases where denied_permissions might be None 2019-08-03 19:50:12 +02:00
Dan
937987a361 Finally remove ports from older schemas and fix export_chat_invite_link 2019-08-03 19:40:45 +02:00
Dan
360cfaa9aa [Bot API 4.4] Update chat photos
- Update ChatPhoto fields descriptions
2019-08-03 19:30:58 +02:00
Dan
c6f346f83d [Bot API 4.4] Update chat permissions
- Move can_* permissions back to ChatMember objects
- Rename restrict_chat to set_chat_permissions
- Update restrict_chat_member to accept a single ChatPermissions arg.
- Update ChatPermissions to be the same as the one on the Bot API
2019-08-03 19:30:32 +02:00
Dan
091552e5d9 [Bot API 4.4] Update stickers
- Add is_animated field to Sticker
- Remove send_animated_sticker (use send_sticker instead)
- Default to 512x512 in case size is unknown (instead of 0x0)
2019-08-03 18:38:58 +02:00
Dan
6bbd79db86 Update download_media and util methods to work with new file_id formats 2019-08-02 02:33:52 +02:00
Dan
ad9f610a6a Update ChatPhoto file_id format 2019-08-02 02:30:19 +02:00
Dan
0de4874003 Update Thumbnail (ex PhotoSize) file_id format 2019-08-02 02:27:29 +02:00
Dan
ec00c332c2 Update Photo file_id format 2019-08-02 02:26:42 +02:00
Dan
64939e5289 Update Document file ids to make them compatible again with the Bot API
Telegram changed something server side on 29 July, 2019 starting
exactly at 04:00 AM UTC+1 (DST), logs say. Looks like Document file ids,
just like Photo-like ids, are going to change as well after all, if we
want to keep them compatible with the Bot API
2019-08-02 01:15:01 +02:00
Dan
67112a34e9 Remove __slots__ from Pyrogram types 2019-08-02 00:33:48 +02:00
Dan
aa135ea457 Reformat project 2019-08-01 19:11:43 +02:00
Dan
ad0f8284f6 Use the correct way to parse peer identifiers 2019-08-01 19:07:08 +02:00
Dan
9ad5e62dea Move all imported schema objects outside TLObject 2019-08-01 18:44:20 +02:00
Dan
d727754ad6 Remove Null primitive
It's unused
2019-08-01 18:41:04 +02:00
Dan
b207b028dc
Merge pull request #293 from mendelmaleh/try_handler_check
Try/except handler.check()
2019-08-01 08:38:47 +02:00
Dan
47e5b9a7cb Set Message.text instead of Message.caption in case of web_page previews 2019-08-01 00:53:17 +02:00
Dan
d8765080d3
Update Filters.command
- Removed "posix" parameter because we only want posix=True and the filter becomes simpler.
- Figured out how to deal with single backslashes ("\") errors.
- Refactor the whole filter: use better names for identifiers.
- Rename parameter "prefix" to "prefixes".
2019-07-31 23:57:16 +02:00
Mendel E
b4cdf1900c Call shlex.split() only after validating cmd, try/except it. 2019-07-29 20:41:37 -04:00
Mendel E
584a6a046a Use shlex.split() for message.command
Enables easier and standard parsing, for quote wrapped args, etc.
Filters.command now has a posix argument, and the separator argument was
removed. shlex.split() works similar to having before separator=None.
2019-07-29 07:38:12 -04:00
Mendel E
02451ffeb5 Try/except handler.check()
Previously, when handler.check raised errors, it would be excepted by
the try on line 153, and would fail to loop through the rest of the
groups/handlers.
2019-07-29 07:31:07 -04:00
Dan
d875298937 Fix forward copies having "None" as caption in case of no caption at all 2019-07-29 12:16:00 +02:00
Dan
8cdcf90b10 Enhance Parser when dealing with leading and trailing whitespaces 2019-07-28 15:11:18 +02:00
Dan
e1c6e6ecc1 Better handling of non-string message texts
Now everything will be allowed and automatically casted to string. This
means that send_message(id, True) would send "True", literally.
2019-07-28 10:13:38 +02:00
Dan
bed13de413 Fix ChatPreview objects failing to parse
This happened because Telegram changed the preview photo type from
ChatPhoto to Photo. The reason behind this change was due to ChatPhoto
requiring now a peer id to be downloaded, which is not available in case
of chat previews.
2019-07-28 09:47:11 +02:00
Dan
11ea15aa08 Fix yet another compatibility issue with Path objects and Python 3.5 2019-07-28 09:32:35 +02:00
Dan
87bbd764b9 Add better summary for get_messages 2019-07-28 08:54:18 +02:00
Dan
7b9a38a2ba Fix indentation and docstrings due to bad PR 2019-07-28 08:16:41 +02:00
Dan
881f5ab783 Merge branch 'develop' of https://github.com/pyrogram/pyrogram into develop 2019-07-28 08:06:34 +02:00
Dan
2dec2442e5 Add examples to all available methods 2019-07-25 11:22:14 +02:00
Dan
fe2ccc6036 Clean up Message docstrings 2019-07-25 11:18:11 +02:00
Dan
8f56610c2c Add examples to utility methods 2019-07-25 11:17:28 +02:00
Dan
72b7a53ff5 Log to warning only in the last attempt 2019-07-25 11:15:56 +02:00
Dan
b2886c21ca Clarify get_messages error messages 2019-07-25 10:48:36 +02:00
Dan
0b66cf2cb9
Merge pull request #279 from kalmengr/patch-5
Add retract_vote bound method to Message
2019-07-22 14:22:02 +02:00
Dan
a320088fee
Fix Message.retract_vote style 2019-07-22 14:21:42 +02:00
Dan
810df3f476
Merge pull request #278 from kalmengr/patch-4
Add bound method vote to Message
2019-07-22 14:17:11 +02:00
Dan
948bba7a08
Add missing return type 2019-07-22 14:16:43 +02:00
Dan
776557f60b Refactor regex filter 2019-07-22 13:31:50 +02:00
Dan
af1bb3b0a7 Fix command filter relying on a previous command state 2019-07-22 13:31:03 +02:00
Dan
f0c1cb00ca Rework InlineQueryResultArticle. Also add *Photo and *Animation types 2019-07-21 23:18:38 +02:00
Dan
4274ef9639 Add abstract method InputMessageContent.write 2019-07-21 23:10:57 +02:00
Dan
c0e9b98cab Add is_gallery parameter to answer_inline_query and InlineQuery.answer 2019-07-21 23:10:23 +02:00
Dan
036a73997a Add new methods: add_chat_members, create_* and delete_* chats
- add_chat_members
- create_group
- create_channel
- create_supergroup
- delete_channel
- delete_supergroup
2019-07-21 23:08:30 +02:00
Dan
184f851625 Fix idle() and run() breaking after latest changes 2019-07-21 02:22:46 +02:00
Dan
6459ce0a07 Fix lots of bound methods breaking due to latest changes on parse_mode
Addresses #287
2019-07-21 01:03:19 +02:00
Dan
62a39521d9 Allow send_media_group send media from URLs 2019-07-19 13:40:12 +02:00
Dan
f2b3db47a9 Add "bot" chat type into Filters.private.
Bots are still 1-to-1 private chats
2019-07-16 07:41:11 +02:00
Elliot Manson
52902d4d43 bug fix 2019-07-14 22:23:23 +04:00
Elliot Manson
50d62259a8 start by steps 2019-07-14 13:28:49 +04:00
kalmengr
449f318e6d
Add retract_vote bound method to Message 2019-07-12 18:29:35 -04:00
kalmengr
ba47488142
Update message.py 2019-07-12 12:13:14 -04:00
kalmengr
2095f9fb5e
Add bound method vote to Message 2019-07-12 12:05:19 -04:00
Dan
385ab22b68 Rework Client.idle()
idle() is now static and doesn't stop the client anymore
2019-07-11 19:59:56 +02:00
Dan
fed8cbf87e Add new set_parse_mode utility method 2019-07-11 19:28:33 +02:00
Dan
e1197e066e Use a better name for the special plugin attribute when decorating funcs 2019-07-11 17:14:38 +02:00
Dan
5599182fd1 Fix Chat.join
The bound method will only be able to make users join public chats that
have set a username.
2019-07-11 14:42:18 +02:00
Dan
3c4a8f0da4
Merge pull request #275 from kalmengr/patch-2
Add join and leave bound methods to Chat object
2019-07-11 14:29:54 +02:00
Dan
efe564064b
Update chat.py 2019-07-11 14:29:41 +02:00
Dan
f7ba7bfd3a Update dev version 2019-07-11 04:21:02 +02:00
Dan
7c704bbb6a Make the text parser log warnings instead of raising exceptions 2019-07-11 04:14:14 +02:00
Dan
2f07e7abc4 Rework user.status, add last_online_date and next_offline_date 2019-07-11 01:35:02 +02:00
Dan
f9ea45f987 Fix restrict_chat and restrict_chat_member combined permissions 2019-07-11 01:32:18 +02:00
Dan
997a3c1626 Remove UserStatus (user_status.py) 2019-07-11 00:12:27 +02:00
Dan
52b0988af4 Clarify default value of supports_streaming parameter (send_video) 2019-07-10 22:04:57 +02:00
Dan
d119998212 Remove get_user_dc method, add dc_id attribute to User 2019-07-10 20:20:22 +02:00
Dan
e41d21ba29 Add "md" to possible parse modes for Markdown style 2019-07-10 20:03:10 +02:00
kalmengr
be8d1068c0
Add join and leave methods to Chat object 2019-07-10 10:39:07 -04:00
Dan
6a62d1b8c4 Fix tiny typo: contact -> contacts 2019-07-09 23:51:43 +02:00
Dan
3a0d67bf0a Merge branch 'develop' of https://github.com/pyrogram/pyrogram into develop 2019-07-09 23:49:49 +02:00
Dan
92d47f17f3
Add new blank lines for clarity and for fixing rst 2019-07-09 23:39:48 +02:00
kalmengr
856870c195
Add bound methods block and unblock to User object 2019-07-09 17:33:41 -04:00
Dan
e039c1fb80 Update Client.idle() docstrings to make summary clearer 2019-07-09 20:03:03 +02:00
Dan
ee2d5b1315 Fix RPCError raising an error itself because of non-optional args 2019-07-09 19:03:37 +02:00
Dan
82efc9a154 Small documentation fix 2019-07-09 19:03:15 +02:00
Dan
13d6ce1495 Update DC IPs 2019-07-09 19:02:54 +02:00
Dan
303d0318c8 Merge remote-tracking branch 'origin/develop' into develop 2019-07-04 21:00:36 +02:00
Dan
bdd554575a Fix export_chat_invite_link not working for bots on channels/supergroups
Telegram still hasn't enabled this for bots...
Closes
2019-07-04 21:00:22 +02:00
Dan
9059bab4d0
Merge pull request #268 from mendelmaleh/develop
Add message.web_page attributes
2019-07-03 20:40:36 +02:00
Mendel E
b4a8763452 Message: media = None if WebPage is empty 2019-07-03 10:59:11 -04:00
Mendel E
f7bfd5597e Make optional values italics 2019-07-03 09:27:06 -04:00