Dan
8b364202c3
Use list instead of set
2018-09-18 19:17:28 +02:00
Dan
500ec09b47
Clean up load_config
2018-09-18 19:16:55 +02:00
Dan
f850d6352e
Enhance API by adding support for Context Managers. Closes #122
...
A batch script would be as simple as this example:
from pyrogram import Client
with Client("...") as app:
app.send_message("haskell", "hi")
2018-09-17 18:53:04 +02:00
Dan
e7a85520f2
Merge remote-tracking branch 'origin/develop' into develop
...
# Conflicts:
# pyrogram/client/client.py
2018-09-17 15:59:49 +02:00
Dan
c75a4f182a
Handle Telegram exceptions on start(). Fixes #121
...
The client doesn't need to be stopped as it never started successfully.
2018-09-15 13:23:25 +02:00
Dan
db6042e91b
Fetch ChatForbidden and ChannelForbidden peers
...
This fixes unwanted PEER_ID_INVALID errors in cases where a user or a
bot was kicked/banned from a group, supergroup or channel
2018-09-02 13:04:29 +02:00
Dan
9f4d7854e8
Fix ipv6 branch merge mess
2018-08-30 01:23:19 +02:00
Dan
4b3b647245
Merge branch 'ipv6' into develop
...
# Conflicts:
# pyrogram/client/client.py
# pyrogram/session/session.py
2018-08-28 12:19:37 +02:00
Dan
2779e33d13
Rename "token" to "bot_token"
2018-09-10 19:55:53 +02:00
Dan
da436461a8
Revert "Move resolve_peer into utilities"
...
This reverts commit 6437c6c
2018-08-10 11:29:13 +02:00
Dan
6437c6c5be
Move resolve_peer into utilities
2018-08-10 11:17:53 +02:00
Dan
d270d0d2aa
Remove support for t.me/joinchat/ links in resolve_peer for now
...
Another way, which is 100% reliable, will be implemented
Also clean the method a bit by removing useless checks
2018-07-28 23:09:44 +02:00
Dan
0c96fa8b7c
Don't flush each chunk. Let python/os deal with it
2018-07-11 17:05:33 +02:00
Dan
1d7c857e9f
Rename get_dialogs
2018-07-04 21:02:26 +02:00
Dan
52f1f390ca
Rename get_dialogs
2018-07-04 20:59:21 +02:00
Dan
8bdccda6ee
Fix GetDialog call
2018-07-04 14:03:45 +02:00
Dan
c7489cf302
Reformat code
2018-07-04 14:03:14 +02:00
Dan
29fb0ce599
Also log UpdatesTooLong
2018-07-04 13:53:34 +02:00
Dan
e414956e71
Log UpdateChannelTooLong updates
2018-07-03 18:29:25 +02:00
Dan
c660d3a7d0
Fix PhotoSize not having date anymore
2018-07-01 19:43:29 +02:00
Dan
7ed9cd6759
Add "Login successful" message upon login
2018-06-27 14:42:04 +02:00
Dan
ecaba45523
Keep only lang_code
2018-06-27 00:42:32 +02:00
Dan
2587394e07
Merge branch 'layer-81' into develop
2018-06-25 00:43:47 +02:00
Dan
fa7b7d0ce3
Cleanup Client class
2018-06-24 19:09:39 +02:00
Dan
9c420bb73b
Document the new parameters. Closes #86
2018-06-24 19:09:39 +02:00
Dan
9a012077cc
Remove some redundant code. Related to #86
2018-06-24 18:54:47 +02:00
Dan
55ef4abb27
Allow user-defined session properties. Related to #86
...
This commit adds five 5 extra parameters to the Client class:
app_version, device_model, system_version, system_lang_code, lang_code
2018-06-24 18:47:49 +02:00
Dan
f4c0793a0b
Make session leaner by removing some redundant parameters
...
Related to #86
2018-06-24 18:27:41 +02:00
Dan
69d1432251
Allow user-defined values for retries and timeout
2018-06-24 17:47:29 +02:00
Dan
44f71f096f
Better docs for phone_code argument
2018-06-24 16:53:07 +02:00
Dan
47043380fb
Pass the phone number when calling the phone_code callback function
2018-06-24 16:11:22 +02:00
Dan
0cd4795318
Use TOS provided by Telegram
2018-06-23 16:15:44 +02:00
Dan
668da4ae0e
Merge branch 'tos' into layer-81
...
# Conflicts:
# pyrogram/client/ext/base_client.py
2018-06-23 16:11:20 +02:00
Dan
fc541221ed
Accept terms of service after successfully signing in
2018-06-23 16:08:28 +02:00
Dan
7f11f85c8f
Move signal handler inside idle
2018-06-23 15:45:48 +02:00
Dan
82a0c965ba
Don't make start and idle clickable
2018-06-22 13:12:31 +02:00
Dan
e3299bb3b7
Add run() method
2018-06-22 13:10:09 +02:00
Dan
ffd67ed408
Remove debug docstrings
2018-06-22 13:08:27 +02:00
Dan
dab0a05f16
Move idle() and signal_handler() definitions near stop()
2018-06-22 13:08:01 +02:00
YoilyL
2944181b38
fixed session mistake
...
use new session when uploading files instead of main session
2018-06-13 17:54:48 +03:00
Dan
ade1c2f377
Accommodate ipv6 in the Client class
2018-06-13 13:38:14 +02:00
Dan
8e2aec4d3a
Show TOS on sign-ins
2018-06-07 12:54:23 +02:00
Dan
91cf103783
Remove a bunch of useless TODOs
2018-06-02 20:54:23 +02:00
Dan
dc7fe93aeb
Clean up code
2018-06-02 20:52:16 +02:00
Dan
b4a2490da2
Use getpass instead of input
2018-06-01 19:27:05 +02:00
Dan
00b983ccc3
Fix proxy not being correctly updated
2018-05-25 11:52:40 +02:00
Dan
65c209000c
Connection refactoring
2018-05-24 21:19:57 +02:00
Dan
9001ccd11f
Add DisconnectHandler
2018-05-23 14:27:17 +02:00
Dan
8a5743ef0c
Allow FloodWait to be raised in case of non-interactive sign-ins
2018-05-22 16:16:28 +02:00
Dan
c5911a6f6b
Reorganize AES module
2018-05-19 15:36:38 +02:00
Dan
6c5ab7ed8a
Add possibility to choose a config file path
2018-05-11 13:10:49 +02:00
Dan
9bb8fe55da
Remove unused import and class
2018-05-11 12:50:48 +02:00
Dan
65c67aaf57
Move download_media
2018-05-09 13:36:33 +02:00
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
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
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
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
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
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
4d81e6894d
Make optional word italic
2018-04-30 19:30: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
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
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
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
01034c174a
Make get_user_profile_photos return the correct type
2018-04-28 09:04:45 +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
4cb7733821
Regression fix: limit replies to 1 ( Closes #61 )
2018-04-26 10:50:30 +02:00
Dan
6e78935857
Accommodate the new types
2018-04-24 16:08:33 +02:00
Dan
debc459686
Return the correct message type with forward_messages()
2018-04-23 18:33:20 +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
0bba5daea4
Update docstrings
2018-04-18 11:15:09 +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
f47f903f7f
Make get_messages return the correct type
2018-04-16 12:42:31 +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
58c9f321b4
Make send_venue return the new type
2018-04-16 11:53:38 +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
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
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
2f52b0e144
Merge branch 'master' into new-api
2018-04-13 16:42:26 +02:00
Dan
75cbd18ede
Add ability to re-fetch usernames and contacts
2018-04-13 16:41:20 +02:00
Dan
ebc34e71d3
Optimize imports
2018-04-13 16:30:19 +02:00
Dan
e05c6a76d5
Merge branch 'master' into new-api
...
# Conflicts:
# pyrogram/client/client.py
# pyrogram/client/utils.py
2018-04-13 16:29:39 +02:00
Dan
077930f85e
Lower offline sleep
2018-04-13 16:20:51 +02:00
Dan
973cb4b2b6
Make dialogs and contacts fetching smarter
2018-04-13 16:20:21 +02:00
Dan
9631dc7780
Accommodate Syncer
2018-04-13 15:21:34 +02:00
Dan
e38da08e25
Load peers from session file
2018-04-13 15:20:37 +02:00
Dan
a4b6674d4d
Add date field
2018-04-13 15:05:46 +02:00
Dan
01775d0bd7
Don't pass session_name
2018-04-13 15:03:46 +02:00
Dan
6dcdeda244
Make proxy loading simpler
2018-04-13 12:30:13 +02:00
Dan
346d3da175
Add more info in case of an error
2018-04-12 14:11:01 +02:00
Dan
b5f1d3a2a5
Update docstrings
2018-04-11 03:53:10 +02:00
Dan
472ed8e355
Document the new features
2018-04-11 03:16:48 +02:00
Dan
9165c7f591
Rework decorators impl
2018-04-10 14:54:39 +02:00
Dan
142ce07576
Make handlers accept filters
2018-04-10 00:24:03 +02:00
Dan
e7fdf5a2a4
Enhance send_audio by accepting file_ids and URLs
2018-04-09 22:02:44 +02:00
Dan
245720278e
Enhance send_photo by accepting file_ids and URLs
...
This is the first step of a total revamp of the current Pyrogram API
2018-04-08 16:50:18 +02:00
Dan
13d25f4e4a
Merge branch 'master' into dispatcher
2018-04-08 13:21:30 +02:00
Dan
0bd22e9266
Fix casting in case api_id is None
2018-04-08 13:21:16 +02:00
Dan
1a7ab62ed9
Add handler for raw mtproto updates
2018-04-08 13:20:31 +02:00
Dan
66d03848de
Merge branch 'master' into dispatcher
2018-04-08 12:46:15 +02:00
Dan
26a41ec00e
Allow returning sms codes as int from the callback function
2018-04-08 12:46:02 +02:00
Dan
dfc8d00adb
Allow passing api_id as string
2018-04-08 12:44:27 +02:00
Dan
1f05c4223a
Fix copypasta
2018-04-08 11:58:17 +02:00
Dan
ee2d66b416
Only keep MessageHandler
2018-04-07 23:34:28 +02:00
Dan
90a4e4c411
Allow registering handlers using decorators
2018-04-06 20:38:34 +02:00
Dan
e98b209526
Accommodate the new Dispatcher
2018-04-06 18:48:41 +02:00
Dan
73246c26f9
Rename utils to message_parser
2018-04-06 14:47:00 +02:00
Dan
38e895ed82
Merge branch 'master' into new-api
...
# Conflicts:
# pyrogram/crypto/aes.py
2018-04-05 20:13:18 +02:00
Dan
73fbe60057
Remove APIKey class
2018-04-05 13:05:27 +02:00
Dan
942c20d08b
Use separate api_id and api_hash parameters
...
Instead of a tuple (api_id, api_hash)
2018-04-05 12:55:34 +02:00
Dan
f8b272a925
Allow passing phone numbers with white spaces
...
E.g.: "+39 123 456 7890"
2018-04-05 11:31:01 +02:00
Dan
195cd22ebb
Better handling of reply and pin messages
2018-04-05 10:49:20 +02:00
Dan
a2590f3bc8
Don't return None
...
This will break Message Pin handling
2018-04-05 08:26:50 +02:00
Dan
fcf0e4515f
Don't try to stop a non-started Client
2018-04-03 14:54:34 +02:00
Dan
10452dc545
Don't allow start() to be called more than once
2018-04-03 11:45:19 +02:00
Dan
e69fea4bb5
More readable exception handling
2018-04-03 11:40:08 +02:00
Dan
2f2a381686
Add extra GetDialogs step
2018-04-02 12:14:22 +02:00
Dan
b5304ca23a
Use fully qualified channel id
2018-04-02 11:11:38 +02:00
Dan
21ab5295c4
Update first_name and last_name parameters' docs
2018-04-01 18:18:06 +02:00
Dan
fecea07db6
Document force_sms parameter
2018-04-01 18:17:20 +02:00
Dan
387bbbf090
Add new force_sms parameter to force Telegram sending the code via SMS
2018-04-01 17:38:22 +02:00
Dan
880eb28e9f
Use double quotes
2018-03-30 22:41:34 +02:00
Dan
f1e1480c5a
Only parse selected messages
2018-03-27 15:58:04 +02:00
Dan
91133812a7
Add support for service messages
2018-03-27 12:22:57 +02:00
Dan
527c5450d2
Extend support for pyrogram types
2018-03-26 20:00:25 +02:00
Dan
7447b77b25
Add initial support for pyrogram types
2018-03-26 15:17:00 +02:00
Dan
beaf88adee
Remove imports, use namespaces
2018-03-26 13:41:00 +02:00
Dan
e397c4d181
Don't process empty differences
2018-03-26 13:34:54 +02:00
Dan
e680cce5fa
Update docstrings
2018-03-25 22:12:52 +02:00
Dan
16eee1dabb
Update docstrings
2018-03-25 21:59:04 +02:00
Dan
faa363fee8
Update docstrings
2018-03-25 21:41:19 +02:00
Dan
5bf64ac444
Don't process empty messages
2018-03-25 17:49:43 +02:00
Dan
bbe3a8a487
Set supports_streaming to True by default
2018-03-24 15:10:27 +01:00
Dan
813b7958e3
Remove token parameter
2018-03-24 15:02:03 +01:00
Dan
ef71dcf56a
Remove **kwargs for generated classes (function/types)
2018-03-23 13:46:43 +01:00
Dan
1d9bb18a38
Only match full t.me/joinchat links
2018-03-23 12:59:03 +01:00
Dan
a9b1783910
Let api_key and proxy parameters override the config.ini file
2018-03-22 14:36:46 +01:00
Dan
f7ce3abc8d
Merge branch 'min'
2018-03-21 17:47:02 +01:00
Dan
e464226608
Update docs
2018-03-21 17:39:53 +01:00
Dan
569ab1696a
Return the good looking absolute path instead of an ugly relative one #37
2018-03-21 16:17:13 +01:00
Eric Blundell
fa6af8695e
Fix missing shutil import
2018-03-21 10:13:45 -05:00
Dan
40e7d72e87
Make paths good looking
2018-03-21 15:43:58 +01:00
Dan
76ad29ae11
Fix saving files on another drive (windows) @EriHoss
2018-03-21 15:42:32 +01:00
Dan
f6ea3e9b42
Cleaner code and some little changes
...
TODO: "" or None for faulty download, which is better?
2018-03-21 13:39:23 +01:00