py-tgcalls 2.0.3__py3-none-any.whl → 2.0.3b1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {py_tgcalls-2.0.3.dist-info → py_tgcalls-2.0.3b1.dist-info}/METADATA +6 -6
- {py_tgcalls-2.0.3.dist-info → py_tgcalls-2.0.3b1.dist-info}/RECORD +13 -13
- {py_tgcalls-2.0.3.dist-info → py_tgcalls-2.0.3b1.dist-info}/WHEEL +1 -1
- pytgcalls/__version__.py +1 -1
- pytgcalls/ffmpeg.py +1 -3
- pytgcalls/handlers/handlers_holder.py +0 -6
- pytgcalls/mtproto/hydrogram_client.py +12 -17
- pytgcalls/mtproto/pyrogram_client.py +12 -17
- pytgcalls/mtproto/telethon_client.py +11 -16
- pytgcalls/types/raw/video_parameters.py +2 -2
- pytgcalls/types/stream/media_stream.py +1 -1
- {py_tgcalls-2.0.3.dist-info → py_tgcalls-2.0.3b1.dist-info}/LICENSE +0 -0
- {py_tgcalls-2.0.3.dist-info → py_tgcalls-2.0.3b1.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: py-tgcalls
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.3b1
|
|
4
4
|
Summary: Async client API for the Telegram Calls.
|
|
5
5
|
Author-email: Laky-64 <iraci.matteo@gmail.com>
|
|
6
6
|
License: GNU LESSER GENERAL PUBLIC LICENSE
|
|
@@ -186,17 +186,17 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
186
186
|
Requires-Python: >=3.8
|
|
187
187
|
Description-Content-Type: text/markdown
|
|
188
188
|
License-File: LICENSE
|
|
189
|
-
Requires-Dist: aiohttp>=3.9.3
|
|
190
|
-
Requires-Dist: ntgcalls>=1.2.
|
|
189
|
+
Requires-Dist: aiohttp >=3.9.3
|
|
190
|
+
Requires-Dist: ntgcalls >=1.2.1
|
|
191
191
|
Requires-Dist: psutil
|
|
192
192
|
Requires-Dist: screeninfo
|
|
193
193
|
Requires-Dist: deprecation
|
|
194
194
|
Provides-Extra: hydrogram
|
|
195
|
-
Requires-Dist: hydrogram>=0.1.4; extra ==
|
|
195
|
+
Requires-Dist: hydrogram >=0.1.4 ; extra == 'hydrogram'
|
|
196
196
|
Provides-Extra: pyrogram
|
|
197
|
-
Requires-Dist: pyrogram>=1.2.20; extra ==
|
|
197
|
+
Requires-Dist: pyrogram >=1.2.20 ; extra == 'pyrogram'
|
|
198
198
|
Provides-Extra: telethon
|
|
199
|
-
Requires-Dist: telethon>=1.24.0; extra ==
|
|
199
|
+
Requires-Dist: telethon >=1.24.0 ; extra == 'telethon'
|
|
200
200
|
|
|
201
201
|
<img src="https://raw.githubusercontent.com/pytgcalls/pytgcalls/master/.github/images/banner.png" alt="pytgcalls logo" />
|
|
202
202
|
<p align="center">
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
pytgcalls/__init__.py,sha256=TfZGf1enqqs50mBB406vygB6zYgn3vAjBYFUDO4Pviw,248
|
|
2
|
-
pytgcalls/__version__.py,sha256=
|
|
2
|
+
pytgcalls/__version__.py,sha256=Dad7olVOHlrvQf3XgEEUbhKmJE563n_WQb074VssEMU,24
|
|
3
3
|
pytgcalls/environment.py,sha256=ctCHACvG6l8SdpPewSBhOvc70kbwpv18maC0TwLvZ08,1924
|
|
4
4
|
pytgcalls/exceptions.py,sha256=0MmAktc53ajYAc7ThjD2tJ9PDyibUi0iHZMfUy2IoKs,4109
|
|
5
|
-
pytgcalls/ffmpeg.py,sha256=
|
|
5
|
+
pytgcalls/ffmpeg.py,sha256=xxtO1fokGjhPG4HDkPx3Qs-T4sXXX0zmuT5E0mU-BJg,8593
|
|
6
6
|
pytgcalls/filters.py,sha256=HFMBBbo_NCw6wqTtseHoDRsspJHQ49BUHBA1cxm7u4g,4852
|
|
7
7
|
pytgcalls/mtproto_required.py,sha256=6B-31p5qH_6oekUgypV4nK3hqPS6Nr-pA8S81wjnbaY,630
|
|
8
8
|
pytgcalls/mutex.py,sha256=Frjji5Ctzlk4AXEBuBLnDK-7HbtreoV6zuyKpFpMNI4,236
|
|
@@ -16,7 +16,7 @@ pytgcalls/ytdlp.py,sha256=jRA-mKQEXleWvaoGv9wtMa77aRjxsyQxn6_0tXI3-sA,2435
|
|
|
16
16
|
pytgcalls/custom_api/__init__.py,sha256=ZT8d0lc2YrDuw_YSFAXXHHMewoXGFZ-ANOBIAr0vGFQ,60
|
|
17
17
|
pytgcalls/custom_api/custom_api.py,sha256=Ko3aS6psrwPmOhRPxvG0fepXt4STrA0StvINSxz4Cj8,1890
|
|
18
18
|
pytgcalls/handlers/__init__.py,sha256=pubbxI4pLqQpAKf8-toD6ija4cpSvbCJOQFjTiDjX1E,75
|
|
19
|
-
pytgcalls/handlers/handlers_holder.py,sha256=
|
|
19
|
+
pytgcalls/handlers/handlers_holder.py,sha256=eDCRF6-zPSUmBb8ZuAPiJfgDvg2Qv6efdX6GlOXHxTA,1033
|
|
20
20
|
pytgcalls/media_devices/__init__.py,sha256=H6uUA6akUqp8WCiT2gLrqUtFdqpd9rcfqDviP5Vhrls,183
|
|
21
21
|
pytgcalls/media_devices/device_info.py,sha256=KueJCRVXXDcxQJzoGfkzcD2kL58pkMUn7Fr3aUwnNtQ,489
|
|
22
22
|
pytgcalls/media_devices/media_devices.py,sha256=KG4fKfubpeMQZVm9IuQmzDaLhsvKzKRdE3zIYRAhEHM,3227
|
|
@@ -49,10 +49,10 @@ pytgcalls/methods/utilities/stream_params.py,sha256=hYcNxx__McmPeHgOUDEuNcN7ThgD
|
|
|
49
49
|
pytgcalls/mtproto/__init__.py,sha256=X4zvzFG7km7qHyE0fdvA550WcOVO_xl_p__gvIfDGmw,130
|
|
50
50
|
pytgcalls/mtproto/bridged_client.py,sha256=kK22n-CKjtfmtNE6bXCpuL6kWAUK2_Ul7cGgx_HNuHQ,4975
|
|
51
51
|
pytgcalls/mtproto/client_cache.py,sha256=1yA5CFAmWZUsWdpqk5vlaN3j1RV1rIN-X7EcqmsnlfY,5087
|
|
52
|
-
pytgcalls/mtproto/hydrogram_client.py,sha256=
|
|
52
|
+
pytgcalls/mtproto/hydrogram_client.py,sha256=iSqwvK8yZZCYMmFQOSXpcDwZOFrBGt-3vJUMyxar-Sc,21116
|
|
53
53
|
pytgcalls/mtproto/mtproto_client.py,sha256=LO71RqgxZ3bYxSFb6l9cc4ks6_peyqHN4i_z478c7yw,6883
|
|
54
|
-
pytgcalls/mtproto/pyrogram_client.py,sha256=
|
|
55
|
-
pytgcalls/mtproto/telethon_client.py,sha256=
|
|
54
|
+
pytgcalls/mtproto/pyrogram_client.py,sha256=iyJMJo6iTULfmGh-jdfJgu8DNVFxzOn28A5_E7uH4-Q,21305
|
|
55
|
+
pytgcalls/mtproto/telethon_client.py,sha256=8BkYncXnPUIJRgrhUBnMIlXV2_fm6vLkN8URVaSuow4,20207
|
|
56
56
|
pytgcalls/types/__init__.py,sha256=yJVJZoH9M9u9VgpZGUX-MF4NzE-vKp4KrId21YQbcGE,910
|
|
57
57
|
pytgcalls/types/browsers.py,sha256=47Kr5q96n4Q4WvVhA6IUlS2egEcA9GRLlDeFcQYyc9M,9545
|
|
58
58
|
pytgcalls/types/cache.py,sha256=FfsOcmYnsBGPlJoTPIXXYcUSpGE3rhx6cjIH77hyUL0,1059
|
|
@@ -78,16 +78,16 @@ pytgcalls/types/raw/__init__.py,sha256=ROHsKFeUMUtlFbx2rhfrdB-TuVm0zBuvNo29Ccn56
|
|
|
78
78
|
pytgcalls/types/raw/audio_parameters.py,sha256=1DsBPwdn_Ukd2Tbkb3whP_ILo9xJY_3XNNmbO4_NO9Q,449
|
|
79
79
|
pytgcalls/types/raw/audio_stream.py,sha256=wEMa93hHt0VBUSuS6gPJlFIGZp5GdNU94O2C2u4AXnY,476
|
|
80
80
|
pytgcalls/types/raw/stream.py,sha256=jCvFUSAdHupqMqfG1E36CgKijKoy0o2LUbgcVjj5Mz0,491
|
|
81
|
-
pytgcalls/types/raw/video_parameters.py,sha256=
|
|
81
|
+
pytgcalls/types/raw/video_parameters.py,sha256=9TeZhg2jTayr5U3ttBgLKg1mfyT7OC8RbqLqinzlM4k,628
|
|
82
82
|
pytgcalls/types/raw/video_stream.py,sha256=2Chrk7NFWF1H9V7hH71RZ5rF3iBhT53syFkHKw4-5gc,433
|
|
83
83
|
pytgcalls/types/stream/__init__.py,sha256=xfF-9ZulOLk3E6G1nw1Ky0ZRWXlFuER0Uj8HQn3650w,338
|
|
84
84
|
pytgcalls/types/stream/audio_quality.py,sha256=4X94ErmTeLP4TVcE3eLtPPdtluSPxgxbgTosuNJOVhc,141
|
|
85
|
-
pytgcalls/types/stream/media_stream.py,sha256=
|
|
85
|
+
pytgcalls/types/stream/media_stream.py,sha256=opMsQX7_XcUGrp_1b1xcYsojej8WSSdPpMB-RzVGclI,8926
|
|
86
86
|
pytgcalls/types/stream/stream_audio_ended.py,sha256=2_EFa98F0vWu0d0jBmLtzp4NH_xBkDO_6yP9UtyKuCs,164
|
|
87
87
|
pytgcalls/types/stream/stream_video_ended.py,sha256=9YFTTZPMDpB95eb815rGtgDrzBGfTeazJ5mZwP6Hvks,164
|
|
88
88
|
pytgcalls/types/stream/video_quality.py,sha256=HBfWq005kh-D19MaVE9VzVdnODzrXf4IJUimCfslfiU,231
|
|
89
|
-
py_tgcalls-2.0.
|
|
90
|
-
py_tgcalls-2.0.
|
|
91
|
-
py_tgcalls-2.0.
|
|
92
|
-
py_tgcalls-2.0.
|
|
93
|
-
py_tgcalls-2.0.
|
|
89
|
+
py_tgcalls-2.0.3b1.dist-info/LICENSE,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
|
|
90
|
+
py_tgcalls-2.0.3b1.dist-info/METADATA,sha256=7wW6XiNXXjOQyDi1ZaJcMk5hEMOqgstlS4fFsfsRN48,14359
|
|
91
|
+
py_tgcalls-2.0.3b1.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
|
|
92
|
+
py_tgcalls-2.0.3b1.dist-info/top_level.txt,sha256=IUDUwn0KkcbUYZbCe9R5AUb2Ob-lmllNUGQqyeXXd8A,10
|
|
93
|
+
py_tgcalls-2.0.3b1.dist-info/RECORD,,
|
pytgcalls/__version__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '2.0.
|
|
1
|
+
__version__ = '2.0.3b1'
|
pytgcalls/ffmpeg.py
CHANGED
|
@@ -97,7 +97,7 @@ async def check_stream(
|
|
|
97
97
|
|
|
98
98
|
if (
|
|
99
99
|
new_h > stream_parameters.height and
|
|
100
|
-
stream_parameters.
|
|
100
|
+
not stream_parameters.ratio_adjust
|
|
101
101
|
):
|
|
102
102
|
new_h = stream_parameters.height
|
|
103
103
|
new_w = int(new_h * ratio)
|
|
@@ -285,8 +285,6 @@ def _build_ffmpeg_options(
|
|
|
285
285
|
options.extend([
|
|
286
286
|
'rawvideo',
|
|
287
287
|
'-r', str(stream_parameters.frame_rate),
|
|
288
|
-
'-pix_fmt',
|
|
289
|
-
'yuv420p',
|
|
290
288
|
'-vf',
|
|
291
289
|
f'scale={stream_parameters.width}:{stream_parameters.height}',
|
|
292
290
|
])
|
|
@@ -78,7 +78,7 @@ class HydrogramClient(BridgedClient):
|
|
|
78
78
|
self,
|
|
79
79
|
)
|
|
80
80
|
|
|
81
|
-
@self._app.on_raw_update(
|
|
81
|
+
@self._app.on_raw_update()
|
|
82
82
|
async def on_update(_, update, __, chats):
|
|
83
83
|
if isinstance(
|
|
84
84
|
update,
|
|
@@ -353,24 +353,19 @@ class HydrogramClient(BridgedClient):
|
|
|
353
353
|
self,
|
|
354
354
|
input_call: InputGroupCall,
|
|
355
355
|
) -> List[GroupCallParticipant]:
|
|
356
|
-
participants = []
|
|
357
|
-
next_offset = ''
|
|
358
|
-
while True:
|
|
359
|
-
result = await self._app.invoke(
|
|
360
|
-
GetGroupParticipants(
|
|
361
|
-
call=input_call,
|
|
362
|
-
ids=[],
|
|
363
|
-
sources=[],
|
|
364
|
-
offset=next_offset,
|
|
365
|
-
limit=0,
|
|
366
|
-
),
|
|
367
|
-
)
|
|
368
|
-
participants.extend(result.participants)
|
|
369
|
-
if not (next_offset := result.next_offset):
|
|
370
|
-
break
|
|
371
356
|
return [
|
|
372
357
|
self.parse_participant(participant)
|
|
373
|
-
for participant in
|
|
358
|
+
for participant in (
|
|
359
|
+
await self._app.invoke(
|
|
360
|
+
GetGroupParticipants(
|
|
361
|
+
call=input_call,
|
|
362
|
+
ids=[],
|
|
363
|
+
sources=[],
|
|
364
|
+
offset='',
|
|
365
|
+
limit=500,
|
|
366
|
+
),
|
|
367
|
+
)
|
|
368
|
+
).participants
|
|
374
369
|
]
|
|
375
370
|
|
|
376
371
|
async def join_group_call(
|
|
@@ -86,7 +86,7 @@ class PyrogramClient(BridgedClient):
|
|
|
86
86
|
self,
|
|
87
87
|
)
|
|
88
88
|
|
|
89
|
-
@self._app.on_raw_update(
|
|
89
|
+
@self._app.on_raw_update()
|
|
90
90
|
async def on_update(_, update, __, chats):
|
|
91
91
|
if isinstance(
|
|
92
92
|
update,
|
|
@@ -361,24 +361,19 @@ class PyrogramClient(BridgedClient):
|
|
|
361
361
|
self,
|
|
362
362
|
input_call: InputGroupCall,
|
|
363
363
|
) -> List[GroupCallParticipant]:
|
|
364
|
-
participants = []
|
|
365
|
-
next_offset = ''
|
|
366
|
-
while True:
|
|
367
|
-
result = await self._app.send(
|
|
368
|
-
GetGroupParticipants(
|
|
369
|
-
call=input_call,
|
|
370
|
-
ids=[],
|
|
371
|
-
sources=[],
|
|
372
|
-
offset=next_offset,
|
|
373
|
-
limit=0,
|
|
374
|
-
),
|
|
375
|
-
)
|
|
376
|
-
participants.extend(result.participants)
|
|
377
|
-
if not (next_offset := result.next_offset):
|
|
378
|
-
break
|
|
379
364
|
return [
|
|
380
365
|
self.parse_participant(participant)
|
|
381
|
-
for participant in
|
|
366
|
+
for participant in (
|
|
367
|
+
await self._app.send(
|
|
368
|
+
GetGroupParticipants(
|
|
369
|
+
call=input_call,
|
|
370
|
+
ids=[],
|
|
371
|
+
sources=[],
|
|
372
|
+
offset='',
|
|
373
|
+
limit=500,
|
|
374
|
+
),
|
|
375
|
+
)
|
|
376
|
+
).participants
|
|
382
377
|
]
|
|
383
378
|
|
|
384
379
|
async def join_group_call(
|
|
@@ -330,24 +330,19 @@ class TelethonClient(BridgedClient):
|
|
|
330
330
|
self,
|
|
331
331
|
input_call: InputGroupCall,
|
|
332
332
|
) -> List[GroupCallParticipant]:
|
|
333
|
-
participants = []
|
|
334
|
-
next_offset = ''
|
|
335
|
-
while True:
|
|
336
|
-
result = await self._app(
|
|
337
|
-
GetGroupParticipantsRequest(
|
|
338
|
-
call=input_call,
|
|
339
|
-
ids=[],
|
|
340
|
-
sources=[],
|
|
341
|
-
offset=next_offset,
|
|
342
|
-
limit=0,
|
|
343
|
-
),
|
|
344
|
-
)
|
|
345
|
-
participants.extend(result.participants)
|
|
346
|
-
if not (next_offset := result.next_offset):
|
|
347
|
-
break
|
|
348
333
|
return [
|
|
349
334
|
self.parse_participant(participant)
|
|
350
|
-
for participant in
|
|
335
|
+
for participant in (
|
|
336
|
+
await self._app(
|
|
337
|
+
GetGroupParticipantsRequest(
|
|
338
|
+
call=input_call,
|
|
339
|
+
ids=[],
|
|
340
|
+
sources=[],
|
|
341
|
+
offset='',
|
|
342
|
+
limit=500,
|
|
343
|
+
),
|
|
344
|
+
)
|
|
345
|
+
).participants
|
|
351
346
|
]
|
|
352
347
|
|
|
353
348
|
async def join_group_call(
|
|
@@ -10,7 +10,7 @@ class VideoParameters(PyObject):
|
|
|
10
10
|
width: int = 640,
|
|
11
11
|
height: int = 360,
|
|
12
12
|
frame_rate: int = 20,
|
|
13
|
-
|
|
13
|
+
ratio_adjust: bool = False,
|
|
14
14
|
):
|
|
15
15
|
max_w, max_h, max_fps = max(
|
|
16
16
|
VideoQuality, key=lambda x: x.value[0],
|
|
@@ -18,4 +18,4 @@ class VideoParameters(PyObject):
|
|
|
18
18
|
self.width: int = min(width, max_w)
|
|
19
19
|
self.height: int = min(height, max_h)
|
|
20
20
|
self.frame_rate: int = min(frame_rate, max_fps)
|
|
21
|
-
self.
|
|
21
|
+
self.ratio_adjust: bool = ratio_adjust
|
|
File without changes
|
|
File without changes
|