Commit Graph

2537 Commits

Author SHA1 Message Date
Accipiter7
23b1450f11
[Client] Fixed ImportError (#471) 2020-08-22 08:16:16 +02:00
Dan
538f1e3972 Deep rewrite: preparing for v1.0
- Pyrogram core is now fully asynchronous
- Ditched Python 3.5, welcome 3.6 as minimum version.
- Moved all types to pyrogram.types
- Turned the Filters class into a module (filters)
- Moved all filters to pyrogram.filters
- Moved all handlers to pyrogram.handlers
- Moved all emoji to pyrogram.emoji
- Renamed pyrogram.api to pyrogram.raw
- Clock is now synced with server's time
- Telegram schema updated to Layer 117
- Greatly improved the TL compiler (proper type-constructor hierarchy)
- Added "do not edit" warning in generated files
- Crypto parts are executed in a thread pool to avoid blocking the event loop
- idle() is now a separate function (it doesn't deal with Client instances)
- Async storage, async filters and async progress callback (optional, can be sync too)
- Added getpass back, for hidden password inputs
2020-08-22 08:05:05 +02:00
Dan
2f0a1f4119 Merge branch 'asyncio-dev' 2020-08-22 07:59:45 +02:00
CyanBook
faab2f451c
Update save_file to accept pathlib objects (#469) 2020-08-21 12:34:30 +02:00
Hasibul Kobir
ecab62ce84
Add support for both sync and async filters (#437)
* support for both sync and async filters

* Add whitespace for readability

* moving to handler.check for coroutine function

Ref: https://github.com/pyrogram/pyrogram/pull/437#discussion_r451626488

* add last line

Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
2020-08-21 07:33:24 +02:00
elandorr
ce0ddcddb2
Fix get_nearby_chats breaking with the new Layer (#446)
* fix for new format

This fixes the `AttributeError: 'PeerUser' object has no attribute 'channel_id'`.
Maybe we should also have a method to show nearby users?

* Update get_nearby_chats.py

Use isinstance instead of type

Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
2020-08-21 07:30:42 +02:00
CyanBook
c8c6faa96e
Change logging hierarchy for loading plugins (#451)
Loading plugins shouldn't be considered a warning
2020-08-21 07:28:27 +02:00
CyanBook
2e08266f56
Update reply_* bound methods to support BinaryIO (#458)
reply_* bound methods weren't added to handle BinaryIO object, now they are.
2020-08-21 07:24:13 +02:00
Yusuf_M_Thon_iD
b95587ed31
Small fixes on example docs (#460) 2020-08-21 07:23:33 +02:00
marcosrandulfegarrido
879e0bfc2d
Fix some syntax errors that are causing errors on python pip package distribution (#467)
Fix some syntax errors that are causing errors on python pip package distribution
2020-08-21 07:22:49 +02:00
CyanBook
3bc96b4193
Add support for compiled patterns in Filters.regex (#468)
* Add support for compiled patterns in Filters.regex and remove extra whitespaces

* Update filters.py

Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
2020-08-21 07:21:53 +02:00
Princic-1837592
4df9357b48
Added Filters.all (#464)
Useful filter to use as default value when extending Handler class
2020-08-20 16:38:54 +02:00
Dan
55fc4faf34 Merge branch 'develop' into asyncio-dev
# Conflicts:
#	pyrogram/__init__.py
2020-07-29 23:26:18 +02:00
Dan
68a0119c09 Update Pyrogram to v0.18.0 2020-07-29 22:46:12 +02:00
Dan
6608a8d1dc Merge develop -> asyncio-dev 2020-07-29 22:40:59 +02:00
Dan
0edf08245b Add mention to football dice 2020-07-28 17:38:58 +02:00
ColinShark
c5b7a365af
Add message.link attribute/property (#442)
* Add message.link attribute

Adds the functionality to access the message link.
Either as `t.me/c/` or `t.me/username` format.

* Change message.link logic

Property now has a returned type, list is a tuple and
we use `utils.get_channel_id` to not rely on str.replace

* Update message.py

- Prepend https:// like official clients do
- Use .format()

Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
2020-07-27 15:30:49 +02:00
Said
d3a34f1084
Add file_name parameter in edit_message_media method (#440)
* ability to change file_name in editmessagemedia method

* ability to change file_name in editmessagemedia method

* ability to change file_name in editmessagemedia method

* Update edit_message_media.py

* Update input_media_document.py

Co-authored-by: GadzhievSA <s.gadzhiev@id-mt.ru>
Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
2020-07-27 15:21:42 +02:00
Dan
b16c5d5fa3 Update Pyrogram's sticker file id 2020-07-27 15:12:24 +02:00
Dan
516e0a13d5 Simplify None checks for file uploads 2020-07-27 15:06:18 +02:00
Dan
b745ce95ed Remove set_chat/profile_video 2020-07-27 15:03:23 +02:00
Dan
d5fc21e6f4 Get the proper biggest photo size 2020-07-27 14:27:09 +02:00
Dan
293e63008b Add set_chat_video method 2020-07-27 13:42:27 +02:00
Dan
8a14f58421 Allow uploading chat photos using BytesIO objects 2020-07-27 13:33:17 +02:00
Dan
2034a785f4 Add set_profile_video method 2020-07-27 13:00:31 +02:00
Dan
9a8057074b Allow uploading profile photos using file-like objects 2020-07-26 23:18:26 +02:00
Dan
b29c5fdc69 Force document when using send_document 2020-07-26 20:23:58 +02:00
Mendel E
c27f811620 Add parse_mode property to Client (#443)
* Add parse_mode property to Client

This breaks set_parse_mode

* Add back set_parse_mode for backwards compatibility
2020-07-21 04:07:21 +02:00
Mendel E
589be97166
Add parse_mode property to Client (#443)
* Add parse_mode property to Client

This breaks set_parse_mode

* Add back set_parse_mode for backwards compatibility
2020-07-21 04:04:24 +02:00
Dan
834d34363f Merge branch 'develop' into asyncio-dev 2020-07-17 18:30:52 +02:00
Dan
d12ef5272f Merge branch 'properties' into develop 2020-07-17 18:30:29 +02:00
Dan
aa078f103c Merge develop -> asyncio-dev 2020-07-17 13:43:10 +02:00
Dan
2504286365 Do not reload plugins from disk
Reloading from disk causes modules to be re-evaluated, and this is
often not desirable. This will break the ability to hot reload plugins
2020-07-17 13:41:24 +02:00
Alisson Lauffer
531069b1e2
Some fixes and speed improvments (#439)
* Use raw string for re pattern

* Trim trailing whitespaces from docstrings and code

* Use isinstance() instead of type() for typechecking

* Remove unused imports
2020-07-12 06:43:30 +02:00
Florent Gallaire
fd944677c7 Add chat.id 2020-07-09 01:49:38 +00:00
Dan
f43165b211 Merge develop -> asyncio-dev 2020-07-09 03:03:52 +02:00
Dan
b3faf21c95 Rework in-memory uploads 2020-07-09 02:56:09 +02:00
Dan
de8f784f78 Use better checks for local and external files 2020-07-09 02:24:01 +02:00
Dan
4a8e6fb855 Cleanup 2020-07-09 02:24:01 +02:00
Octo
6b2d6ffacf Fix send_voice 2020-07-09 00:00:08 +02:00
Yan
3ec5f76b10 Fix TypeError in send_sticker 2020-07-09 00:00:08 +02:00
Yan
2e846f83ec Annotate file-like objects in docstring of send_video 2020-07-09 00:00:08 +02:00
Yan
4c9fee525e Annotate file-like objects in docstring of send_sticker 2020-07-09 00:00:08 +02:00
Yan
173e08015a Annotate file-like objects in docstring of send_document 2020-07-09 00:00:08 +02:00
Octo
c13392d2ce Add support for uploading from file pointers, fixes https://github.com/pyrogram/pyrogram/issues/261 2020-07-09 00:00:08 +02:00
Octo
1e8c9812a1 Add support for downloading files to file pointer, fix for https://github.com/pyrogram/pyrogram/issues/284 2020-07-08 23:59:02 +02:00
Dan
74e5a5a5e1 Add Mention link 2020-07-08 23:37:24 +02:00
Dan
55d0b93cf0 Extend set_slow_mode to accept None 2020-07-08 17:16:06 +02:00
Dan
476b6b022f Merge branch 'asyncio-dev' of https://github.com/pyrogram/pyrogram into asyncio-dev 2020-07-06 16:07:40 +02:00
Dan
6d4b2c0bb5 Merge branch 'develop' into asyncio-dev 2020-07-06 16:07:19 +02:00
Dan
37d823f579 Fix linked chat parsing
There are two distinct ChatFull types using the same
name (but different namespaces), their objects are kept
in chat_full and full_chat.
2020-07-06 16:07:06 +02:00
Dan
c196b90c9d
Allow uploading files up to 2000 MiB in size 2020-07-06 15:55:11 +02:00
Ripe
dd9b55f256
Update inline_query_result_animation.py (#435)
add missing await
2020-07-02 13:27:29 +02:00
Florent Gallaire
4aaa7160f0 Send a warning instead throwing an exeption when message type is not compatible with as_copy 2020-06-15 05:19:45 +00:00
Dan
ff012ecd1c Merge branch 'develop' into asyncio-dev 2020-06-11 22:04:59 +02:00
Dan
2adc01be7f Remove unneeded file_ref arg from Message.download 2020-06-11 22:04:27 +02:00
Dan
d8dfac7e89 Merge develop -> asyncio-dev 2020-06-06 13:10:03 +02:00
Dan
dd5bd80017 Remove unneeded code
Closes #414
2020-06-06 12:31:25 +02:00
Dan
6a898803db Merge branch 'develop' into asyncio-dev
# Conflicts:
#	pyrogram/session/session.py
2020-06-02 13:06:53 +02:00
Dan
7df85e2039 Show more relevant information when DEBUG logs are enabled
Show exactly what is being sent and received
2020-06-02 13:05:26 +02:00
Dan
f4d075597f Add missing async/await 2020-05-28 22:19:15 +02:00
Dan
c5af9cbc42 Merge branch 'develop' into asyncio-dev
# Conflicts:
#	pyrogram/client/parser/html.py
2020-05-28 15:44:22 +02:00
Dan
d82e9468f0 Strip whitespace characters from the end of the message
but preserve closing tags
2020-05-28 15:43:42 +02:00
Dan
c0b38ff010 Merge develop -> asyncio-dev 2020-05-25 16:32:04 +02:00
Dan
e30b9c5255 Fix small typos 2020-05-23 15:03:52 +02:00
Dan
4a9cfa42de Make CallbackQuery.answer optional arguments actually optional 2020-05-23 15:01:29 +02:00
SuperCz1
d93b9275f3
Bugfixes in chat.py (#411)
- Fixed this bug: https://t.me/pyrogramchat/169553 (which was caused because pyrogram trying to parse linked_chat even if it was None).

- Fixed another related bug (which was caused because pyrogram trying to get linked_chat_id even with basic groups causing an AttributeError).
2020-05-23 14:52:14 +02:00
Dan
d5a18eb063 Add search_global method 2020-05-23 14:50:14 +02:00
Dan
bb89e949e8 Update send_dice: add basketball "dice" 2020-05-23 13:43:25 +02:00
Dan
4add83c7a8 Merge branch 'develop' into asyncio-dev
# Conflicts:
#	pyrogram/client/methods/messages/send_audio.py
2020-05-16 14:40:59 +02:00
Dan
24f8032627 Merge remote-tracking branch 'origin/develop' into develop 2020-05-16 14:40:28 +02:00
Dan
5b94c340c0 Fix Filters.regex failing in case the value is None 2020-05-16 14:40:22 +02:00
demget
0c83fa09a6
Add file_name param to file-related functions (#308) 2020-05-16 12:33:21 +02:00
Eric Solinas
22eb42e1f3 Add Filter.linked_channel
* filter messages coming from the channel connected to the chat

* Update filters.py

Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
2020-05-16 12:26:18 +02:00
Dan
0e95e3620c Merge remote-tracking branch 'origin/asyncio-dev' into asyncio-dev 2020-05-16 01:34:13 +02:00
Dan
d50322a3f5 Merge develop -> asyncio-dev 2020-05-16 01:33:42 +02:00
Dan
efc92715cc Remove Filters.callback_data (superseded by Filters.regex)
@ColinTheShark say goodbye, thanks.
2020-05-16 00:40:05 +02:00
Dan
27d5caf40e Give Filters.regex superpowers
Basically make it work on Message, CallbackQuery and InlineQuery updates
2020-05-16 00:35:05 +02:00
Cezar H
e4028fa6a7
Add missing await (#403)
await client.send_poll(...) was returning a coroutine instead of the Message object
2020-05-14 11:56:58 +02:00
Dan
0556efa26b Add support for joining linked chats with the .join() bound method 2020-05-07 15:46:31 +02:00
Dan
12ce0a33c1 Add linked chats to Chat objects 2020-05-07 14:57:28 +02:00
Dan
db4a00da36 Merge develop -> asyncio 2020-05-07 13:39:48 +02:00
Dan
128ab4b0b9 Move the automatic sleep mechanism down to Session 2020-05-07 13:38:22 +02:00
Dan
74674cd615 Merge develop -> asyncio 2020-05-07 13:00:03 +02:00
Dan
99aee987bd Add an automatic sleep mechanism for flood wait exceptions 2020-05-07 12:53:45 +02:00
SuperCz1
c05c5c4441
Add session name in "Sleeping for Xs" log lines (#401)
* Update send_media_group.py

* Update get_dialogs.py

* Update get_dialogs.py

* Update get_messages.py

* Update get_history.py

* Update get_chat_members.py
2020-05-07 11:35:08 +02:00
CyanBook
88e42ecc0d
Update update_profile example (#395) 2020-05-04 12:55:10 +02:00
Dan
48e45fee9b Add missing update_profile to docs and Client 2020-05-02 21:18:58 +02:00
Dan
4ff924bcfb Update Pyrogram to v0.17.1 2020-05-02 21:17:22 +02:00
Dan
fd4bd754cc Add missing update_profile to docs and Client 2020-05-02 21:16:52 +02:00
Dan
2f3dc3f39e Merge branch 'develop' into asyncio-dev
# Conflicts:
#	pyrogram/__init__.py
2020-05-02 21:02:40 +02:00
Dan
dd9423bbb1 Update Pyrogram to v0.17.1 2020-05-02 21:02:06 +02:00
Dan
20de3fccdf Fix Match objects not being properly printed in Python 3.6 2020-05-02 15:01:15 +02:00
Dan
75bfa04f3f Merge branch 'develop' into asyncio-dev
# Conflicts:
#	pyrogram/client/client.py
2020-05-01 18:46:45 +02:00
Dan
78ed83ebf7 Fix plugins not being properly unloaded
Also, plugins' roots values will follow python notation: folder.plugins
instead of folder/plugins, in case of roots inside another folder.
2020-05-01 18:45:52 +02:00
Dan
23789393fe Fix missing async/await for set_slow_mode 2020-05-01 16:37:03 +02:00
Dan
45c6df45e9 Merge branch 'develop' into asyncio-dev
# Conflicts:
#	pyrogram/__init__.py
2020-04-30 11:55:03 +02:00
Dan
dd9c4801ed Merge remote-tracking branch 'origin/develop' into develop 2020-04-30 02:43:42 +02:00
Dan
858f82fd88 Update Pyrogram to v0.17.0 2020-04-30 02:43:23 +02:00
Dan
0257fb79c5 Merge develop -> asyncio-dev 2020-04-26 15:14:53 +02:00
MIRROR
22c29791c8
Fix the type hint of Message's web_page (#392) 2020-04-26 12:59:58 +02:00
Dan
8c2dd9d1c3 Fix ttl_seconds and thumbs not being optional 2020-04-26 12:21:10 +02:00
Dan
5b042a6546 Add support for darts mini-game with send_dice 2020-04-24 15:51:40 +02:00
Dan
4526a644dd Fix scheduled forward messages not being parsed correctly 2020-04-23 13:02:55 +02:00
Dan
e42d6acc08 Add support for scheduled forward messages 2020-04-23 12:54:52 +02:00
Dan
72e150ca13 Add ttl_seconds field to Video objects 2020-04-20 22:40:39 +02:00
Dan
944c6153b9 Merge branch 'develop' into asyncio-dev
# Conflicts:
#	pyrogram/client/methods/chats/restrict_chat_member.py
#	pyrogram/client/methods/chats/set_chat_permissions.py
2020-04-12 19:39:15 +02:00
Dan
99604baaf4 Update restrict_chat_member and set_chat_permissions methods 2020-04-12 13:42:00 +02:00
Dan
ef5fa8f70b Fix message entities being kept unparsed for private messages
Closes #386
2020-04-12 13:30:59 +02:00
Dan
c99a9ad2b4 Merge develop -> asyncio-dev 2020-04-10 13:45:15 +02:00
Dan
374dc6d143 Add search_messages method 2020-04-10 13:37:11 +02:00
Dan
91ebe5f2a8 Fix object decoder breaking on re.Match objects 2020-04-08 23:29:32 +02:00
Dan
2444f44948 Merge branch 'develop' into asyncio-dev 2020-04-06 16:09:53 +02:00
Dan
3e900214f4 Pass the required file_reference when editing media messages 2020-04-06 16:09:35 +02:00
Dan
1b0b467d7b Fix iter_members not working properly as async generator 2020-04-06 16:05:21 +02:00
Dan
570cb888b2 Merge develop -> asyncio-dev 2020-04-06 14:54:55 +02:00
Real Phoenix
207d451a01 Add more Chat bound methods (#383)
* Add more bound methods

Bound methods for get_chat_member, get_chat_members, iter_chat_members, add_chat_members

* Update compiler.py

Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
2020-04-06 14:51:40 +02:00
Real Phoenix
c1a835b74e
Add more Chat bound methods (#383)
* Add more bound methods

Bound methods for get_chat_member, get_chat_members, iter_chat_members, add_chat_members

* Update compiler.py

Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
2020-04-06 14:22:38 +02:00
Dan
850b79315f Fix ttl_seconds not being parsed correctly 2020-04-04 23:47:09 +02:00
Dan
6dbd842106 Merge develop -> asyncio-dev 2020-04-03 17:19:06 +02:00
Dan
fa157b59f1 Add support for ChosenInlineResult objects 2020-04-03 17:15:28 +02:00
Dan
a54cd2e4fc Add ttl_seconds to Photo objects 2020-04-02 13:55:47 +02:00
Dan
2046768a5e Fix wrong reported type 2020-04-01 20:07:22 +02:00
Dan
3cf758433d Add missing await keywords 2020-03-30 18:35:50 +02:00
Dan
aa6c935d83 Merge develop -> asyncio-dev 2020-03-30 17:45:18 +02:00
Dan
8681ca2043 Don't spawn unnecessary threads when no_updates=True 2020-03-30 17:33:28 +02:00
Dan
2ba921c84d Workaround the occasional delayed stop of a Client instance 2020-03-30 16:59:22 +02:00
Dan
b9c50b0ae0 Add extended chat permissions 2020-03-30 15:24:07 +02:00
Dan
75ad20bc57 Fix wrong lines emphasize 2020-03-30 14:39:36 +02:00
Dan
42cd135009 Add missing download_media progress example 2020-03-30 14:39:16 +02:00
Dan
746a6eb477 Add support for Dice objects
- add send_dice
- add Dice class
2020-03-30 14:38:57 +02:00
Dan
1b15b1e3b8 Clarify docs 2020-03-30 11:19:58 +02:00
Yusuf_M_Thon_iD
b913590cea
add missing file_ref in set_chat_photo (#369) 2020-03-21 16:03:54 +01:00
trenoduro
a2652f02b5
Fix RPCError 400 QUIZ_CORRECT_ANSWER_EMPTY (#367)
* Fix RPCError 400 QUIZ_CORRECT_ANSWER_EMPTY

* Fix RPCError 400 QUIZ_CORRECT_ANSWER_EMPTY
2020-03-21 16:03:29 +01:00
Dan
1996fb1481 Update Copyright 2020-03-21 15:43:32 +01:00
Dan
f867c66083 Fix stop_transmission example 2020-02-26 23:31:01 +01:00
Dan
28cee8d01f Do not ever use "recent" filtering automatically
That code existed to improve members fetching performance
for channels/supergroups with less than 10k+1 members, but
it was causing troubles when fetching members based on a
query string and for channels with less than 10k+1 subscribers
2020-02-20 20:41:08 +01:00
Dan
7be86f8ea3 Update development version 2020-02-20 20:07:00 +01:00
Dan
9e0868dd77 Merge remote-tracking branch 'origin/develop' into develop 2020-02-20 13:55:03 +01:00
Dan
73d9af51ef Don't use the "recent" filter when passing a query argument 2020-02-20 13:54:51 +01:00
Dan
df5de3e583
Revert "Add missing file_ref in set_chat_photo (#343)" (#366)
This reverts commit e316d18bf4.
2020-02-04 17:03:33 +01:00
trenoduro
fde76f0e11
Fix 'Client' object has no attribute 'export_invite_link (#365) 2020-02-04 17:01:44 +01:00
Dan
062a6ce6dd Fix AttributeError raising when receiving ChatParticipantsForbidden 2020-02-03 14:51:53 +01:00
Dan
d9cb9c59bf Allow start/restart being used inside handlers with block=False 2020-02-01 16:19:28 +01:00
Dan
51f88ef1bf Revert "Allow stop, restart and add/remove_handler to be non-blocking"
This reverts commit 8e9e8b4a
2020-02-01 16:05:58 +01:00
Dan
ce93f0ac64 Fix set_administrator_title giving full permissions 2020-02-01 16:01:41 +01:00
Dan
9618bbc242 Add missing word in sentence 2020-02-01 15:52:49 +01:00
Dan
d4e6ab3acb Fix incorrect link to handlers.html 2020-02-01 15:51:01 +01:00
Dan
1d0e110126 Fix wrong type hint in docs for send_photo 2020-02-01 15:49:07 +01:00
Dan
af2035951a Update Poll object for Polls 2.0 2020-02-01 15:39:28 +01:00
Dan
aa1c0e226e Update vote_poll to allow voting for multiple options 2020-02-01 15:21:35 +01:00
Dan
88f681f0fd Update send_poll to allow multiple answers, public voting and quiz 2020-02-01 15:19:52 +01:00
Dan
2bf6357bad Show more meaningful errors for wrapped queries 2020-02-01 15:19:05 +01:00
Dan
531423ae1c Update copyright year 2020-02-01 14:17:32 +01:00
Eric Solinas
42f09cd361
Add missing file_ref argument to bound methods (#347) 2020-02-01 14:13:07 +01:00
Yusuf_M_Thon_iD
e316d18bf4
Add missing file_ref in set_chat_photo (#343) 2020-02-01 14:10:46 +01:00
trenoduro
78cba0489a
Fix stop_poll() (#339) 2020-02-01 14:08:21 +01:00
Dan
42c9bafa0c Update copyright notice 2020-02-01 14:04:33 +01:00
Dan
ac8fad3a18 Fix plugin modules not being properly reloaded from disk
When using importlib.import_module, Python loads the module from disk
only once and any subsequent call to this method will just re-import
the already loaded module from RAM. Wrapping importlib.import_module
with importlib.reload will make Python force-reload the module from
disk.
2020-01-16 22:01:10 +01:00
Dan
0f84f91939 Fix bound method Chat.restrict_member. Closes #351 2019-12-30 11:11:02 +01:00
Dan
f5610c77e5 Merge branch 'develop' of https://github.com/pyrogram/pyrogram into develop 2019-12-30 11:01:40 +01:00
Dan
0e9c7af2e5 Small fixes on webpage.py 2019-12-30 10:54:49 +01:00
kalmengr
c5cc85f007 Add method delete_user_history (#282)
* Add method delete_all_user_messages

* Update delete_all_user_messages.py

* Rename delete_all_user_messages.py to delete_user_history.py

Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
2019-12-23 19:05:30 +01:00
kalmengr
cf76945a83 Create a new update_profile method to update a user's own profile (#277)
* Create a new update_profile method to update a users own profile

* Update update_profile.py

* Update update_profile.py

* Update update_profile.py

* Update update_profile.py

Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
2019-12-23 18:44:06 +01:00
Shrimadhav U K
2daa5932c6 Add missing asyncio keywords (#319)
* fix missing await

* fix empty file reference

* one more await, and file reference
2019-12-23 15:14:58 +01:00
Alisson Lauffer
8e9a7a33bd
Add missing awaits 2019-12-06 23:22:19 -03:00
Dan
353811ebd3
Add missing await 2019-12-06 21:14:15 +01:00
Dan
d71d9686d7 Add set_slow_mode method 2019-10-27 11:02:38 +01:00
Dan
c33a2a0b80 Tiny typo fix 2019-10-27 10:14:13 +01:00
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
c929ce3097 Merge develop -> asyncio 2019-10-27 08:59:07 +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
79a04f2961 Merge branch 'develop' into asyncio-dev 2019-09-29 12:53:44 +02:00
Dan
2482358484 Fix delete_profile_photos 2019-09-29 12:53:26 +02:00
Dan
ccbe9b498a Merge branch 'develop' into asyncio-dev
# Conflicts:
#	pyrogram/__init__.py
2019-09-25 20:01:17 +02:00
Dan
da7130b380 Update Pyrogram to v0.16.0 2019-09-25 19:12:27 +02:00
Dan
bc7d29237d Small style fix 2019-09-25 18:41:06 +02:00
Dan
a541bb45db Merge develop -> asyncio 2019-09-21 22:21:20 +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
03927404bc Merge branch 'develop' into asyncio-dev 2019-09-14 20:59:10 +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
826885a821 Merge develop -> asyncio 2019-09-14 20:42:06 +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
b10817ec29 Merge develop -> asyncio 2019-09-09 16:00:38 +02:00
Dan
3dce23524d Merge branch 'asyncio-dev' of https://github.com/pyrogram/pyrogram into asyncio-dev 2019-09-09 15:57:10 +02:00
YoilyL
aa937a704d fixed memory leak when session.send coroutine is cancelled (#311)
added that when session.send coroutine is cancelled (or if any other exception is raised) the result should still be removed from the results list
2019-09-09 15:56:57 +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
928ce5d850 Merge develop -> asyncio 2019-09-08 19:27:37 +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
8f0b8babc2 Merge develop -> asyncio 2019-09-08 13:26:10 +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
c163f16d7b Merge develop -> asyncio 2019-09-07 17:10:28 +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
96334e0dba Merge develop -> asyncio 2019-09-07 16:01:31 +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
5f944056cc Merge remote-tracking branch 'origin/asyncio-dev' into asyncio-dev 2019-09-07 13:43:31 +02:00
Dan
ce72a7edd9 Merge develop -> asyncio 2019-09-07 13:40:26 +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
1ade49a13a
Fix error on serializing None when int is expected 2019-08-26 22:09:36 +02:00
Dan
fe6c5e542d
Add missing async and await keywords 2019-08-23 12:25:09 +02:00
Dan
2031df15fe
Update inline_query_result_photo.py 2019-08-23 11:52:12 +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
a829f74a16 Merge develop -> asyncio 2019-08-17 22:25:26 +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
Dan
55fc071b06 Merge develop -> asyncio 2019-08-16 22:38:11 +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
a46ace4e5c Merge develop -> asyncio 2019-08-12 13:02:32 +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
7f9d3ee3e2 Merge develop -> asyncio 2019-08-10 00:59:01 +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
Dan
06f3053af8 Merge branch 'develop' into asyncio-dev 2019-08-07 16:37:55 +02:00
Dan
5cfc412af2 Add missing await 2019-08-07 14:08:06 +02: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
e96a74f728 Merge branch 'develop' into asyncio-dev 2019-08-06 01:02:55 +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
8612eafb4a Merge develop -> asyncio 2019-08-03 20:23:41 +02: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
1540fd4f22 Merge remote-tracking branch 'origin/asyncio-dev' into asyncio-dev 2019-08-03 10:49:09 +02:00
Dan
7badcd38b4 Merge develop -> asyncio 2019-08-03 10:48:35 +02:00
Dan
adda199c77 Revert "Replace ensure_future usages to create_task"
This reverts commit 9940dd67
2019-08-03 10:37:48 +02:00
Dan
94603f1ff2 Replace create_task with ensure_future for compatibility 2019-08-03 10:36:57 +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
73e8b8c66e
Update read_history.py 2019-08-01 20:18:17 +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
eddff4769c
Add missing async/await 2019-08-01 10:43:09 +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
Dan
8700e3a0f3 Fix some methods not being defined using async 2019-07-31 13:33:04 +02:00
Mendel E
b4cdf1900c Call shlex.split() only after validating cmd, try/except it. 2019-07-29 20:41:37 -04:00
Dan
0f9029202e Merge develop -> asyncio 2019-07-30 00:06:06 +02: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