Commit Graph

1763 Commits

Author SHA1 Message Date
Dan
e61bf92627 Add Parser package
Revamped from HTML/Markdown
2019-06-26 16:07:27 +02:00
Dan
be5f0c9529 Parser's client can be None
In that case, check if is None and don't parse user mentions.
This happens only in text content for inline results
2019-06-26 16:06:50 +02:00
Dan
8d852cb47e Implement strict and loose markdown parsing
This is enabled by default:

  - strict: only markdown syntax is parsed
  - loose: both markdown and html syntax are parsed
2019-06-26 16:05:09 +02:00
Dan
e4a6d16cf3 Remove generated inline query result types 2019-06-26 15:56:08 +02:00
Dan
7490f6cfa3 Update the HTML parser: make it easy for asyncio to deal with mentions
We can't await coroutines inside HTMLParser overridden methods, such as
handle_starttag, because they can't be async. This commit moves the
resolve_peer call into the parse method of the HTML class, which can be
defined async.
2019-06-25 11:47:45 +02:00
Dan
32ca805f6b Update message.py 2019-06-25 10:25:21 +02:00
Dan
168fce09da Implement HTML.unparse and Markdown.unparse 2019-06-25 10:24:19 +02:00
Dan
a086964e85 Make the HTML parser more sound 2019-06-25 07:41:48 +02:00
Dan
07bc7e39df Allow entities to overlap, like: <b>bold <i>and</b> italic</i> 2019-06-25 07:08:38 +02:00
Dan
df386b2f91 Make slicing text messages & captions work properly with entity offsets 2019-06-25 05:53:41 +02:00
Dan
de02848a69 Revert "Delete style utils.py and move its content inside html.py The HTML parser is now the only one that makes use of those util methods"
This reverts commit cd1e41b1
2019-06-25 05:47:57 +02:00
Dan
cd1e41b130 Delete style utils.py and move its content inside html.py
The HTML parser is now the only one that makes use of those util methods
2019-06-24 14:33:17 +02:00
Dan
a27dc575e4 Actually fix the HTML Parser feeding by calling .close() when done 2019-06-24 14:17:46 +02:00
Dan
cac0bcabf9 Fix HTML parsing breaking with no tags 2019-06-24 13:36:27 +02:00
Dan
8e0182633f Ignore any other style when inside a fixed-width style 2019-06-24 13:35:58 +02:00
Dan
f12cee5d94 Automatically escape URL bodies when using markdown 2019-06-24 10:54:58 +02:00
Dan
d6900cde9f Remove debug print() 2019-06-24 10:11:21 +02:00
Dan
e7c49c6a1b Revamp HTML and Markdown parsers to allow multiple nested entities 2019-06-24 10:07:28 +02:00
Dan
648f37cf6d Add support for underline and strikethrough text via Markdown
New delimiters:

    - ~~strikethrough~~
    - --underline--
2019-06-23 22:43:11 +02:00
Dan
978ee4e6a6 Add new message entity types: "underline", "strike" and "blockquote" 2019-06-23 22:32:45 +02:00
Dan
0985d7ad90 Enable parsing underline, strikethrough and blockquote text for HTML 2019-06-23 22:31:55 +02:00
Dan
31f39a00ab Make plugin callback functions return the function itself when decorated 2019-06-23 01:33:46 +02:00
Dan
e7fffd2f76 Fix workers not running concurrently anymore after using a shared Lock 2019-06-22 00:45:49 +02:00
Dan
b439e44015 Fix tiny typo 2019-06-21 03:43:43 +02:00
Dan
a398bc5fc7 Rename CallbackQuery's bound-methods: edit_* -> edit_message_* 2019-06-21 02:00:29 +02:00
Dan
8d0e161b56 Lock dispatcher groups. Fixes #255 2019-06-21 01:53:17 +02:00
Dan
0699bd31e5 Bring Message .reply() and .edit() back for now 2019-06-20 19:23:33 +02:00
Dan
9ebf2983fe Cast Paths to string: pathlib for older pythons doesn't properly work 2019-06-20 14:15:02 +02:00
Dan
8c96e5f46a Smarter session migration 2019-06-20 03:31:37 +02:00
Dan
30192de1ad Update pyrogram/client to accommodate Storage Engines 2019-06-19 16:10:37 +02:00
Dan
edaced35a7 Use base64.urlsafe_b64encode/decode instead of manually passing altchars 2019-06-19 16:07:22 +02:00
Dan
6cc9688e49 Implement FileStorage and MemoryStorage engines 2019-06-19 16:04:35 +02:00
Dan
6177abbfa4 Add Storage abstract class 2019-06-19 16:04:06 +02:00
Dan
682591ea8f Update Auth and Session to accommodate Storage Engines 2019-06-19 16:02:29 +02:00
Dan
d472d06c48 Merge branch 'develop' into session_storage 2019-06-19 15:54:52 +02:00
Dan
651b8d891d
Merge pull request #256 from ColinTheShark/develop
Add convenience methods to block and unblock Users
2019-06-17 14:43:26 +02:00
ColinShark
1fd31cac1e Add convenience methods to block and unblock Users 2019-06-17 14:34:49 +02:00
ColinShark
10de006cc5 Add returned object 2019-06-17 09:47:12 +02:00
Dan
142d5ab335 Merge branch 'develop' into session_storage
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/ext/base_client.py
#	pyrogram/client/ext/syncer.py
#	pyrogram/client/methods/contacts/get_contacts.py
2019-06-15 23:52:34 +02:00
Dan
80d8443be4 Fix script executions not working outside the current directory
Fixes #41
2019-06-15 23:02:31 +02:00
Dan
abc0e992cf Fix Sticker.set_name being treated as tuple/list-like when should in fact be a string
Yes, that little comma messed things up (again)
2019-06-15 17:59:28 +02:00
Dan
237e434e78 Merge branch 'develop' of https://github.com/pyrogram/pyrogram into develop 2019-06-15 17:59:12 +02:00
ColinShark
4492d9d20b Put italic in quotes, adapt text_mention (#254)
* Put italic in quotes, adapt text_mention

* Update message_entity.py
2019-06-15 13:55:50 +02:00
Dan
ef8f3bd6e1 Revert: CallbackQuery edit_* bound methods renamed to edit_message_* 2019-06-14 04:53:04 +02:00
Dan
61ed44ff5f Add edit_inline_* methods to deal with inline messages only 2019-06-14 04:52:05 +02:00
Dan
3ed1bb0d86 Rename CallbackQuery edit_* bound methods to edit_message_*
We are editing the message the callback query comes from, not the
callback query itself.
2019-06-14 03:57:12 +02:00
Dan
3ae77d55c7 Rename edit -> edit_text and reply -> reply_text bound methods 2019-06-14 02:52:01 +02:00
Dan
c485715db1 Small docstrings fixup 2019-06-14 02:47:17 +02:00
Dan
da4ff268a4 Add edit, edit_caption, edit_media and edit_reply_markup bound methods to the CallbackQuery type 2019-06-14 02:46:27 +02:00
Dan
22199b0fe5 Implement editing of messages sent via inline bots
- edit_message_text
- edit_message_caption
- edit_message_media
- edit_message_reply_markup
2019-06-14 02:15:33 +02:00
Dan
93082ce894 Reword get_user_dc docstrings 2019-06-12 13:43:28 +02:00
Dan
b86373d28c Improve get_history_count 2019-06-12 11:43:24 +02:00
Dan
df6e174b55 Fix InputPhoneContact docstring 2019-06-12 11:38:06 +02:00
Dan
4f2928e7b5 Improve get_profile_photos and get_profile_photos_count 2019-06-12 11:37:43 +02:00
Dan
a21858a262
Merge pull request #251 from pyrogram/types-revamp
Types revamp
2019-06-12 10:48:10 +02:00
Dan
684aef3ded Fix files downloaded with no file name 2019-06-11 21:12:00 +02:00
Dan
92625795ef Update develop version 2019-06-11 20:50:36 +02:00
Dan
83af58258c Fix download_media ignoring the file_name argument 2019-06-11 20:36:09 +02:00
Dan
fd0a40442a Fix plugins not getting reloaded properly when restarting a client 2019-06-11 18:31:38 +02:00
Dan
b9b50bad94 Fix get_users and get_contacts not returning pretty-printable lists 2019-06-11 16:46:10 +02:00
Dan
7baa00353d Add a FAQ about DC migration 2019-06-11 15:59:39 +02:00
Dan
1ee8487712 Merge branch 'develop' into types-revamp
# Conflicts:
#	pyrogram/client/methods/users/get_profile_photos.py
2019-06-11 14:45:21 +02:00
Dan
af08606087 Fix get_profile_photos not working when passing "me"/"self" as argument 2019-06-09 13:01:24 +02:00
Dan
6e6dd54d40 Add missing attributes to the Chat type 2019-06-08 19:55:40 +02:00
Dan
34616ebf61 Add .archive() and .unarchive() bound methods to User 2019-06-08 19:30:53 +02:00
Dan
6e3d8ca20b Add .archive() and .unarchive() bound methods to Chat 2019-06-08 19:28:47 +02:00
Dan
9b12e823b4 Fix Message bound methods' docstrings 2019-06-08 19:25:12 +02:00
Dan
5f3b7b97aa Add archive_chats and unarchive_chats methods 2019-06-08 19:15:19 +02:00
Dan
43493733c9 Rearrange code 2019-06-08 15:28:03 +02:00
Dan
94d90efc80 Rename section from "Keyboards" to "Bots & Keyboards" 2019-06-08 15:27:53 +02:00
Dan
a769fdfd20 Remove GameHighScores type 2019-06-08 15:16:51 +02:00
Dan
cfbc5298df Remove Messages type 2019-06-08 15:13:52 +02:00
Dan
797de058e8 Remove ProfilePhotos type 2019-06-08 14:09:16 +02:00
Dan
c8fd446cb6 Remove Dialogs type 2019-06-08 14:00:00 +02:00
Dan
2db2ca3283 Remove ChatMembers type 2019-06-08 13:50:17 +02:00
Dan
2e05c81a5c Update docs about Telegram data centers 2019-06-08 11:33:52 +02:00
Dan
b46ffe1414 Update Pyrogram to v0.14.1 2019-06-07 18:53:45 +02:00
Dan
e63b915ec2 Fix trailing commas breaking older Python versions 2019-06-07 18:51:04 +02:00
Dan
c65e210c03 Fix FileData namedtuple using Python 3.7+ features 2019-06-07 18:48:34 +02:00
Dan
89e6f4137b Fix get_chat_member always returning self for basic groups 2019-06-07 18:00:00 +02:00
Dan
d95bbdf445 Update next develop version 2019-06-07 16:37:28 +02:00
Dan
571af6e0b9 Update Pyrogram to v0.14.0 2019-06-07 16:05:33 +02:00
Dan
a80c5c1dbb Fix broken links on decorators' docs 2019-06-07 15:49:16 +02:00
Dan
da515af959 Rearrange code 2019-06-06 19:29:44 +02:00
Dan
b205c6cce0 Rename Photos to ProfilePhotos 2019-06-06 19:09:52 +02:00
Dan
8151270a94 Update docs 2019-06-06 18:25:23 +02:00
Dan
6bebe2297e Rename "thumbnails" to "thumbs" 2019-06-05 21:03:46 +02:00
Dan
17ddb0d1b7 Update get_chat_member docstrings 2019-06-05 13:58:32 +02:00
Dan
a35e2620f8 Fix export_chat_invite_link for basic groups in Layer 100 2019-06-04 23:36:10 +02:00
Dan
a425e00a96 Add read_history method 2019-06-04 19:16:30 +02:00
Dan
896c9fa4fd Add "unsave" parameter to send_animation 2019-06-04 16:32:42 +02:00
Dan
9a44c79a82 Rename PyrogramType to Object 2019-06-03 16:56:37 +02:00
Dan
d5517f4d5f Rename Object to TLObject 2019-06-03 14:19:50 +02:00
Dan
4d97aae933 Merge remote-tracking branch 'origin/develop' into develop 2019-06-02 18:58:06 +02:00
Dan
cfec26d3db Add PyrogramList type 2019-06-02 16:16:16 +02:00
ColinShark
5cb709ee75 Make it one-line 2019-06-02 00:25:59 +02:00
ColinShark
12cc6fa4eb Removed Placeholder, break down comparison 2019-06-02 00:13:52 +02:00
ColinShark
d3cb386a6f Appropiate naming 2019-06-01 23:39:26 +02:00
ColinShark
04aada818e Less arbitrary name for Filter, Adapt Docstring 2019-06-01 23:36:45 +02:00
ColinShark
2eba6e58f9 Remove Optionality for args 2019-06-01 23:34:20 +02:00
ColinShark
0a96355c5d Add Filter for Callback_Query.data 2019-06-01 23:31:17 +02:00
Dan
e9a2087fe0 Fix List not calling __repr__ 2019-06-01 15:36:53 +02:00
Dan
acc0fab311 Fix animated stickers media type. They are documents for now 2019-06-01 14:07:45 +02:00
Dan
1f2be4f1ce Add send_animated_sticker method 2019-06-01 14:05:25 +02:00
Dan
dc94da3895 Add application/x-tgsticker mime type with .tgs as extension 2019-06-01 14:04:39 +02:00
Dan
d243ebc2cd Performance improvements 2019-06-01 13:18:48 +02:00
Dan
f6361cd20f Allow bare lists from the MTProto API to be printed nicely 2019-06-01 13:17:04 +02:00
Dan
e7f6e9ec66 Cast is_bot value to bool 2019-06-01 13:15:41 +02:00
Dan
48a5da8958 Let FutureSalt(s) attributes be plain integer instead of datetime values 2019-05-31 16:36:20 +02:00
Dan
a984558860 Rename methods dealing with profile pictures 2019-05-31 00:20:09 +02:00
Dan
cb3addab1e Add iter_profile_photos method 2019-05-31 00:18:43 +02:00
Dan
4ca87682af Fix Document.date attribute being a tuple
Thanks Python...
2019-05-31 00:16:31 +02:00
Dan
0340271b33 Refactor docstrings 2019-05-30 15:23:43 +02:00
Dan
715ae14751 Update send_* methods (for file_ids) 2019-05-30 14:57:52 +02:00
Dan
376909f356 Add get_input_media_from_file_id utility method
For internal usage
2019-05-30 14:56:59 +02:00
Dan
16dbd8d8db Update development version 2019-05-29 10:43:00 +02:00
Dan
55599e33c6 Rework download_media to accommodate L100 changes 2019-05-29 10:40:37 +02:00
Dan
3208b22849 Update all media types' thumbnails
They are now a List of Thumbnail objects
2019-05-29 09:50:41 +02:00
Dan
b217bf3784 Refactor ChatPhoto to accommodate L100 changes 2019-05-29 09:49:50 +02:00
Dan
fda456cd1e Rename UserProfilePhotos to just Photos for brevity and elegance 2019-05-29 09:49:13 +02:00
Dan
3a882b870b Add StrippedThumbnail type
Still a WIP
2019-05-29 09:47:43 +02:00
Dan
aaa569a08d Revamp Thumbnail type (ex PhotoSize) 2019-05-29 09:47:14 +02:00
Dan
807dcb67be Hide phone numbers and show human-friendly date formats when printing 2019-05-29 09:46:21 +02:00
Dan
41d5a13b5f Extend Chat and User types with new fields
is_verified, is_restricted, is_scam and is_support (user only)
2019-05-29 09:44:57 +02:00
Dan
38de4299c5 Add get_user_dc method 2019-05-29 09:43:48 +02:00
Dan
09d012b696 Rename get_user_profile_photos to get_user_photos 2019-05-29 09:43:33 +02:00
Dan
86a4f63d37 Rename set_user_profile_photo to set_photo
Users can only set a photo for themselves.
2019-05-29 09:42:55 +02:00
Dan
83cd828386 Rename get_user_profile_photos_count to get_user_photos_count 2019-05-29 09:41:59 +02:00
Dan
1390797f58 Rename delete_user_profile_photos to just delete_photos.
It's implied an user can only delete own photos.
2019-05-29 09:41:04 +02:00
Dan
c2424029b5 Fix dialogs after L100 update 2019-05-29 09:37:50 +02:00
Dan
e94dcd3b0b Update docs 2019-05-28 16:41:55 +02:00
Dan
87ad981420 Add get_user_dc method 2019-05-27 14:39:10 +02:00
Dan
bb246f9e60 Update Pyrogram to v0.13.0 2019-05-25 01:50:34 +02:00
Dan
47c06fdae2 Docs revamp. Part 7 2019-05-25 01:37:55 +02:00
Dan
0dc953c320 Update domain name references to pyrogram.org 2019-05-19 21:40:41 +02:00
Dan
518220431e Docs revamp. Part 5 2019-05-18 01:45:01 +02:00
Dan
b6ea451ee5 Reword some method return type docstrings 2019-05-17 13:44:44 +02:00
Dan
23d0ef3cf9 Use "bot" as chat type for bots.
We now have "private", "bot", "group", "supergroups" and "channel" chat
types.
2019-05-17 13:23:03 +02:00
Dan
53d0cc30f6 Remove get_chat_preview and have get_chat deal with ChatPreview objects 2019-05-17 13:18:24 +02:00
Dan
944b672fe5 Docs revamp. Part 4 2019-05-16 21:28:34 +02:00
Dan
a5e42572f6 Allow Message.click() without arguments. Default to 0 (first button) 2019-05-13 21:05:47 +02:00
Dan
94de75f714 Bring back the possibility to use strings as callback query data
In case bytes (which is the type used by telegram) can't be successfully
decoded into strings, the raw bytes are presented instead of trying to
decode by ignoring/replacing errors.
2019-05-13 21:04:17 +02:00
Dan
90115448ac Update link hint for No API Key found errors 2019-05-13 16:37:26 +02:00
Dan
65c07b7d34 Use a better repr for all types
now eval(repr(obj) == obj
2019-05-13 16:06:34 +02:00
Dan
ef912d21ef Use more concise and cleaner description of a method and a type 2019-05-12 19:49:06 +02:00
Dan
eadda551c6 Docs revamp. Part 3 2019-05-12 19:26:55 +02:00
Dan
e4b0a78f1a Docs revamp. Part 2 2019-05-10 16:14:10 +02:00
Dan
92283d6cab Add timeout to Message.click 2019-05-09 05:55:44 +02:00
Dan
6530c7e293 Remove ChatAction module too
It's pretty much useless, better just use strings
2019-05-09 05:08:37 +02:00
Dan
3a494a478f Remove ParseMode
It's pretty much useless, better just use "markdown" and "html"
2019-05-09 04:32:43 +02:00