mirror of
https://github.com/TeamPGM/pyrogram.git
synced 2024-11-24 07:51:44 +00:00
Allow negative offsets in stream_media
This commit is contained in:
parent
515531774b
commit
b645a75b93
@ -16,6 +16,7 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import math
|
||||||
from typing import Union, Optional, BinaryIO
|
from typing import Union, Optional, BinaryIO
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
@ -62,10 +63,12 @@ class StreamMedia:
|
|||||||
async for chunk in app.stream_media(message, limit=3):
|
async for chunk in app.stream_media(message, limit=3):
|
||||||
print(len(chunk))
|
print(len(chunk))
|
||||||
|
|
||||||
# Stream the last 3 chunks only
|
# Stream the rest of the media by skipping the first 3 chunks
|
||||||
import math
|
async for chunk in app.stream_media(message, offset=3):
|
||||||
chunks = math.ceil(message.document.file_size / 1024 / 1024)
|
print(len(chunk))
|
||||||
async for chunk in app.stream_media(message, offset=chunks - 3):
|
|
||||||
|
# Stream the last 3 chunks only (negative offset)
|
||||||
|
async for chunk in app.stream_media(message, offset=-3):
|
||||||
print(len(chunk))
|
print(len(chunk))
|
||||||
"""
|
"""
|
||||||
available_media = ("audio", "document", "photo", "sticker", "animation", "video", "voice", "video_note",
|
available_media = ("audio", "document", "photo", "sticker", "animation", "video", "voice", "video_note",
|
||||||
@ -90,5 +93,12 @@ class StreamMedia:
|
|||||||
file_id_obj = FileId.decode(file_id_str)
|
file_id_obj = FileId.decode(file_id_str)
|
||||||
file_size = getattr(media, "file_size", 0)
|
file_size = getattr(media, "file_size", 0)
|
||||||
|
|
||||||
|
if offset < 0:
|
||||||
|
if file_size == 0:
|
||||||
|
raise ValueError("Negative offsets are not supported for file ids, pass a Message object instead")
|
||||||
|
|
||||||
|
chunks = math.ceil(file_size / 1024 / 1024)
|
||||||
|
offset += chunks
|
||||||
|
|
||||||
async for chunk in self.get_file(file_id_obj, file_size, limit, offset):
|
async for chunk in self.get_file(file_id_obj, file_size, limit, offset):
|
||||||
yield chunk
|
yield chunk
|
||||||
|
Loading…
Reference in New Issue
Block a user