Commit Graph

482 Commits

Author SHA1 Message Date
Dan
12c61fb431 Fix unwanted CHANNEL_PRIVATE errors. Fixes #129 2018-10-01 09:40:34 +02:00
Dan
41acdd4d63 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/connection/transport/tcp/tcp.py
2018-09-22 14:49:35 +02:00
Dan
6a89c7ea02 Add missing ipv6 docstrings 2018-09-22 14:21:55 +02:00
Dan
df8bc62fb3 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
#	pyrogram/client/methods/messages/send_document.py
#	pyrogram/client/methods/messages/send_video_note.py
2018-09-19 17:54:53 +02:00
Dan
3a858e6a57 Fix config values not being available when not using config.ini file 2018-09-19 17:30:23 +02:00
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
4c290ba38a Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/methods/messages/send_audio.py
#	pyrogram/session/session.py
2018-09-17 17:00:10 +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
cc7901adf8 Merge branch 'develop' into asyncio 2018-09-06 20:05:01 +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
10f3829c93 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/connection/connection.py
#	pyrogram/connection/transport/tcp/tcp.py
#	pyrogram/connection/transport/tcp/tcp_intermediate.py
#	pyrogram/session/session.py
2018-09-01 01:05:25 +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
3f7b0b25af Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/methods/chats/get_chat_members.py
#	pyrogram/client/methods/chats/get_dialogs.py
#	pyrogram/client/methods/messages/send_animation.py
#	pyrogram/client/methods/messages/send_venue.py
2018-08-22 10:30:25 +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
8a69c2d74e Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/methods/messages/send_contact.py
2018-07-16 17:39:54 +02:00
Dan
0c96fa8b7c Don't flush each chunk. Let python/os deal with it 2018-07-11 17:05:33 +02:00
Dan
c2369c26ca Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/ext/utils.py
2018-07-04 21:51:10 +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
d61f9fa458 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/__init__.py
2018-07-03 18:32:34 +02:00
Dan
e414956e71
Log UpdateChannelTooLong updates 2018-07-03 18:29:25 +02:00
Dan
f6886bd0e4 Further improve save_file 2018-07-03 16:34:55 +02:00
Dan
ec82b4f994 Don't use getpass anymore (for now)
The reason is that getpass is blocking. Let's use ainput() until
a proper way of reading from stdin without echoing is found.
2018-07-02 17:21:42 +02:00
Dan
ed562edb9f Fix send AcceptTermsOfService not being awaited 2018-07-02 14:11:02 +02:00
Dan
af5c5d20cf Replace input() with ainput() in Client 2018-07-02 14:10:48 +02:00
Dan
3711437dbd Merge branch 'develop' into asyncio 2018-07-02 09:51:01 +02:00
Dan
c660d3a7d0 Fix PhotoSize not having date anymore 2018-07-01 19:43:29 +02:00
Dan
b49030eb10 Shorter conditions 2018-06-30 11:30:32 +02:00
Dan
d28f795aca Make save_file more efficient 2018-06-30 11:26:45 +02:00
Dan
77c696aec0 Merge branch 'develop' into asyncio 2018-06-27 17:21:14 +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
9dff15bd4f Make run() accept coroutine functions 2018-06-26 13:45:31 +02:00
Dan
4970a98b43 Merge branch 'develop' into asyncio 2018-06-25 00:46:06 +02:00
Dan
2587394e07 Merge branch 'layer-81' into develop 2018-06-25 00:43:47 +02:00
Dan
5f727cb5a2 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
#	pyrogram/client/ext/base_client.py
#	pyrogram/client/methods/bots/request_callback_answer.py
#	pyrogram/session/session.py
2018-06-24 19:27:37 +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
5834e38f14 Make run() accept a coroutine 2018-06-24 11:39:50 +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
c9cd79cb05 Fix merge mess with duplicated idle() methods 2018-06-23 15:49:56 +02:00
Dan
518d33ee7a Merge branch 'develop' into asyncio 2018-06-23 15:46:41 +02:00
Dan
7f11f85c8f Move signal handler inside idle 2018-06-23 15:45:48 +02:00
Dan
5446801c14 Make run() run the event loop 2018-06-22 13:39:29 +02:00
Dan
2571bf0758 Merge branch 'develop' into asyncio
# Conflicts:
#	pyrogram/client/client.py
2018-06-22 13:37:56 +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
Dan
6fcf41d857 Client becomes async 2018-06-20 11:41:22 +02:00
Dan
e333e8dada First step of Client conversion using asyncio 2018-06-13 20:00:19 +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