pyrocalls 2.2.8__tar.gz → 2.2.9__tar.gz
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.
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/PKG-INFO +1 -1
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pyrocalls.egg-info/PKG-INFO +1 -1
- pyrocalls-2.2.9/pytgcalls/__version__.py +1 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/stream/media_stream.py +48 -23
- pyrocalls-2.2.8/pytgcalls/__version__.py +0 -1
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/LICENSE +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/README.md +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pyproject.toml +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pyrocalls.egg-info/SOURCES.txt +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pyrocalls.egg-info/dependency_links.txt +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pyrocalls.egg-info/not-zip-safe +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pyrocalls.egg-info/requires.txt +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pyrocalls.egg-info/top_level.txt +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/chat_lock.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/custom_api/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/custom_api/custom_api.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/environment.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/exceptions.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/ffmpeg.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/filters.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/handlers/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/handlers/handlers_holder.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/list_to_cmd.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/media_devices/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/media_devices/device_info.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/media_devices/input_device.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/media_devices/media_devices.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/media_devices/screen_device.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/media_devices/speaker_device.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/calls/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/calls/change_volume_call.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/calls/get_participants.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/calls/leave_call.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/decorators/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/decorators/on_update.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/clear_cache.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/clear_call.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/connect_call.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/emit_sig_data.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/handle_connection_changed.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/handle_mtproto_updates.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/handle_stream_ended.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/handle_stream_frame.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/join_presentation.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/log_retries.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/request_broadcast_part.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/request_broadcast_timestamp.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/switch_connection.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/update_sources.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/update_status.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/stream/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/stream/mute.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/stream/pause.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/stream/play.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/stream/record.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/stream/resume.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/stream/send_frame.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/stream/time.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/stream/unmute.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/utilities/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/utilities/cache_peer.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/utilities/call_holder.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/utilities/compose.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/utilities/cpu_usage.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/utilities/idle.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/utilities/ping.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/utilities/resolve_chat_id.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/utilities/run.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/utilities/start.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/utilities/stream_params.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/mtproto/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/mtproto/bridged_client.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/mtproto/client_cache.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/mtproto/hydrogram_client.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/mtproto/mtproto_client.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/mtproto/pyrogram_client.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/mtproto/telethon_client.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/mtproto_required.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/mutex.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/pytgcalls.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/pytgcalls_session.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/scaffold.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/statictypes.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/sync.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/browsers.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/cache.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/calls/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/calls/call.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/calls/call_config.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/calls/call_data.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/calls/call_protocol.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/calls/call_sources.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/calls/group_call_config.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/calls/pending_connection.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/calls/raw_call_update.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/chats/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/chats/chat_update.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/chats/group_call_participant.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/chats/updated_group_call_participant.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/dict.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/flag.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/list.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/participant_list.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/py_object.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/raw/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/raw/audio_parameters.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/raw/audio_stream.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/raw/stream.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/raw/video_parameters.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/raw/video_stream.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/stream/__init__.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/stream/audio_quality.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/stream/device.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/stream/direction.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/stream/external_media.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/stream/frame.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/stream/record_stream.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/stream/stream_ended.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/stream/stream_frames.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/stream/video_quality.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/update.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/types/user_agent.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/version_manager.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/wait_counter_lock.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/ytdlp.py +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/setup.cfg +0 -0
- {pyrocalls-2.2.8 → pyrocalls-2.2.9}/setup.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.2.9'
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import os
|
|
1
2
|
import logging
|
|
2
3
|
from enum import auto
|
|
3
4
|
from pathlib import Path
|
|
@@ -200,37 +201,61 @@ class MediaStream(Stream):
|
|
|
200
201
|
# 🔥 FAST PATH: local file + audio → NO CHECKS
|
|
201
202
|
# =========================================================
|
|
202
203
|
async def check_stream(self):
|
|
203
|
-
import os
|
|
204
204
|
|
|
205
|
-
#
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
and not (self._audio_flags & MediaStream.Flags.IGNORE)
|
|
210
|
-
):
|
|
211
|
-
self._audio_path = self._audio_path or self._media_path
|
|
205
|
+
# =====================================================
|
|
206
|
+
# ⚡ FAST PATH: LOCAL FILE (AUDIO + VIDEO BOTH)
|
|
207
|
+
# =====================================================
|
|
208
|
+
if self._media_path and os.path.exists(self._media_path):
|
|
212
209
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
'ffmpeg',
|
|
217
|
-
self._ffmpeg_parameters,
|
|
218
|
-
self._audio_path,
|
|
219
|
-
self._audio_parameters,
|
|
220
|
-
[],
|
|
221
|
-
self._headers,
|
|
222
|
-
True,
|
|
223
|
-
),
|
|
224
|
-
)
|
|
210
|
+
# ---------------- AUDIO ----------------
|
|
211
|
+
if not (self._audio_flags & MediaStream.Flags.IGNORE):
|
|
212
|
+
self._audio_path = self._audio_path or self._media_path
|
|
225
213
|
|
|
226
|
-
|
|
227
|
-
|
|
214
|
+
if self.microphone:
|
|
215
|
+
self.microphone.path = list_to_cmd(
|
|
216
|
+
build_command(
|
|
217
|
+
'ffmpeg',
|
|
218
|
+
self._ffmpeg_parameters,
|
|
219
|
+
self._audio_path,
|
|
220
|
+
self._audio_parameters,
|
|
221
|
+
[],
|
|
222
|
+
self._headers,
|
|
223
|
+
True, # treat as live / growing file
|
|
224
|
+
),
|
|
225
|
+
)
|
|
226
|
+
else:
|
|
227
|
+
self.microphone = None
|
|
228
|
+
|
|
229
|
+
# ---------------- VIDEO ----------------
|
|
230
|
+
if not (self._video_flags & MediaStream.Flags.IGNORE):
|
|
231
|
+
video_ext = ('.mp4', '.mkv', '.webm', '.mov', '.avi')
|
|
232
|
+
is_video_file = self._media_path.lower().endswith(video_ext)
|
|
233
|
+
|
|
234
|
+
if is_video_file and self.camera:
|
|
235
|
+
self.camera.path = list_to_cmd(
|
|
236
|
+
build_command(
|
|
237
|
+
'ffmpeg',
|
|
238
|
+
self._ffmpeg_parameters,
|
|
239
|
+
self._media_path,
|
|
240
|
+
self._video_parameters,
|
|
241
|
+
[],
|
|
242
|
+
self._headers,
|
|
243
|
+
True, # treat as live / growing file
|
|
244
|
+
),
|
|
245
|
+
)
|
|
246
|
+
else:
|
|
247
|
+
self.camera = None
|
|
248
|
+
else:
|
|
249
|
+
self.camera = None
|
|
250
|
+
|
|
251
|
+
# Local file (audio OR video) fully handled here
|
|
228
252
|
return
|
|
229
253
|
|
|
254
|
+
|
|
230
255
|
# =====================================================
|
|
231
256
|
# ⬇️ ORIGINAL pytgcalls LOGIC (UNCHANGED)
|
|
232
257
|
# =====================================================
|
|
233
|
-
|
|
258
|
+
|
|
234
259
|
if not self._video_flags & MediaStream.Flags.IGNORE and \
|
|
235
260
|
not self._is_video_external:
|
|
236
261
|
if self._is_media_device:
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.2.8'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyrocalls-2.2.8 → pyrocalls-2.2.9}/pytgcalls/methods/internal/request_broadcast_timestamp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|