Commit Graph

2356 Commits

Author SHA1 Message Date
Dan
f909e1e4ea Fix "invalid escape" warnings 2020-08-26 09:07:26 +02:00
Dan
7c987889f0 Add sleep_threshold parameter to send() method
- Decrease the default sleep threshold from 60 to 10 seconds
- Use a higher sleep threshold for generator methods
2020-08-26 09:01:01 +02:00
Dan
ebf222bbb7 Add the parameter hide_password to Client 2020-08-26 08:12:11 +02:00
Dan
c5dd474f93 Document undocumented properties 2020-08-26 08:10:34 +02:00
Dan
15f504a91f Fix captions being "None" for inline media results 2020-08-26 08:09:12 +02:00
Dan
f06562b73d Add missing await keywords 2020-08-26 07:43:57 +02:00
Dan
1fbe88d4b2 Update Pyrogram to v1.0.1 2020-08-25 14:18:29 +02:00
Dan
1311974fde Fix idle() not working in Windows
- Remove event-based idling
- Add back while-true-based idling
2020-08-25 14:17:39 +02:00
Dan
093d1e0dcb Fix filters.user and .chat breaking when no initial collection is passed 2020-08-25 14:08:53 +02:00
Dan
37edeb06b2 Update Pyrogram to v1.0.0 2020-08-25 12:07:08 +02:00
Dan
65b5229fe8 Use inspect's iscoroutinefunction, not asyncio's 2020-08-25 09:32:39 +02:00
Dan
b057dcb39d Small fixes around docs 2020-08-24 15:24:06 +02:00
Dan
01ec5d7f1d Fix a bad docstring indentation in filters.regex 2020-08-24 09:51:21 +02:00
Dan
3e3d77fdaf Implement short-circuit evaluation for filters
AND and OR operations will not evaluate the second operand
in case the first one is, respectively, False and True.
2020-08-24 09:20:10 +02:00
Dan
303712f599 Update docs 2020-08-22 16:09:38 +02:00
Dan
5f087e5f82 Use create_task instead of ensure_future 2020-08-22 14:05:54 +02:00
Dan
a822c51261 Update beta version 2020-08-22 11:30:42 +02:00
Dan
fbded4e23b Fix time going out of sync when starting new sessions 2020-08-22 11:26:11 +02:00
Dan
d7be2c90a1 Fix run() not dealing properly with coroutines 2020-08-22 09:50:37 +02:00
Dan
bc62b3f6ae Implement a way to deal with failing inline requests
This is due to Telegram raising an error in case bots not
in DC4 try to communicate with chats that live in DC4.
2020-08-22 09:22:14 +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