|
import asyncio |
|
from typing import Union |
|
|
|
from DragMusic.misc import db |
|
from DragMusic.utils.formatters import check_duration, seconds_to_min |
|
from config import autoclean, time_to_seconds |
|
|
|
|
|
async def put_queue( |
|
chat_id, |
|
original_chat_id, |
|
file, |
|
title, |
|
duration, |
|
user, |
|
vidid, |
|
user_id, |
|
stream, |
|
forceplay: Union[bool, str] = None, |
|
): |
|
title = title.title() |
|
try: |
|
duration_in_seconds = time_to_seconds(duration) - 3 |
|
except: |
|
duration_in_seconds = 0 |
|
put = { |
|
"title": title, |
|
"dur": duration, |
|
"streamtype": stream, |
|
"by": user, |
|
"user_id": user_id, |
|
"chat_id": original_chat_id, |
|
"file": file, |
|
"vidid": vidid, |
|
"seconds": duration_in_seconds, |
|
"played": 0, |
|
} |
|
if forceplay: |
|
check = db.get(chat_id) |
|
if check: |
|
check.insert(0, put) |
|
else: |
|
db[chat_id] = [] |
|
db[chat_id].append(put) |
|
else: |
|
db[chat_id].append(put) |
|
autoclean.append(file) |
|
|
|
|
|
async def put_queue_index( |
|
chat_id, |
|
original_chat_id, |
|
file, |
|
title, |
|
duration, |
|
user, |
|
vidid, |
|
stream, |
|
forceplay: Union[bool, str] = None, |
|
): |
|
if "20.212.146.162" in vidid: |
|
try: |
|
dur = await asyncio.get_event_loop().run_in_executor( |
|
None, check_duration, vidid |
|
) |
|
duration = seconds_to_min(dur) |
|
except: |
|
duration = "ᴜʀʟ sᴛʀᴇᴀᴍ" |
|
dur = 0 |
|
else: |
|
dur = 0 |
|
put = { |
|
"title": title, |
|
"dur": duration, |
|
"streamtype": stream, |
|
"by": user, |
|
"chat_id": original_chat_id, |
|
"file": file, |
|
"vidid": vidid, |
|
"seconds": dur, |
|
"played": 0, |
|
} |
|
if forceplay: |
|
check = db.get(chat_id) |
|
if check: |
|
check.insert(0, put) |
|
else: |
|
db[chat_id] = [] |
|
db[chat_id].append(put) |
|
else: |
|
db[chat_id].append(put) |
|
|