mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-27 13:34:28 +00:00
Add videoinfo command
This commit is contained in:
parent
a1193f320a
commit
034c0d0edc
5 changed files with 43 additions and 3 deletions
|
@ -11,7 +11,7 @@ loop = asyncio.get_event_loop()
|
|||
|
||||
commands = [PingCommand, ShipCommand, SmecdsCommand, ColorCommand, CiaoruoziCommand, DebugCreateCommand, SyncCommand,
|
||||
AuthorCommand, DiarioCommand, RageCommand, DateparserCommand, ReminderCommand, KvactiveCommand, KvCommand,
|
||||
KvrollCommand]
|
||||
KvrollCommand, VideoinfoCommand]
|
||||
|
||||
master = RoyalnetServer("localhost", 1234, "sas")
|
||||
tg_bot = TelegramBot(os.environ["TG_AK"], "localhost:1234", "sas", commands, os.environ["DB_PATH"], Royal, Telegram, "tg_id", error_command=ErrorHandlerCommand)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
from .playmodes import PlayMode, Playlist, Pool
|
||||
from .youtubedl import YtdlFile, YtdlInfo
|
||||
|
||||
__all__ = ["PlayMode", "Playlist", "Pool"]
|
||||
__all__ = ["PlayMode", "Playlist", "Pool", "YtdlFile", "YtdlInfo"]
|
||||
|
|
|
@ -129,3 +129,17 @@ class YtdlInfo:
|
|||
|
||||
def download(self, outtmpl="%(title)s-%(id)s.%(ext)s", progress_hooks=None, **ytdl_args) -> YtdlFile:
|
||||
return YtdlFile(self, outtmpl, progress_hooks=progress_hooks)
|
||||
|
||||
def __repr__(self):
|
||||
if self.title:
|
||||
return f"<YtdlInfo of {self.title}>"
|
||||
if self.webpage_url:
|
||||
return f"<YtdlInfo for {self.webpage_url}>"
|
||||
return f"<YtdlInfo id={self.id} ...>"
|
||||
|
||||
def __str__(self):
|
||||
if self.title:
|
||||
return self.title
|
||||
if self.webpage_url:
|
||||
return self.webpage_url
|
||||
return self.id
|
||||
|
|
|
@ -13,8 +13,9 @@ from .reminder import ReminderCommand
|
|||
from .kvactive import KvactiveCommand
|
||||
from .kv import KvCommand
|
||||
from .kvroll import KvrollCommand
|
||||
from .videoinfo import VideoinfoCommand
|
||||
|
||||
|
||||
__all__ = ["NullCommand", "PingCommand", "ShipCommand", "SmecdsCommand", "CiaoruoziCommand", "ColorCommand",
|
||||
"SyncCommand", "DiarioCommand", "RageCommand", "DateparserCommand", "AuthorCommand", "ReminderCommand",
|
||||
"KvactiveCommand", "KvCommand", "KvrollCommand"]
|
||||
"KvactiveCommand", "KvCommand", "KvrollCommand", "VideoinfoCommand"]
|
||||
|
|
24
royalnet/commands/videoinfo.py
Normal file
24
royalnet/commands/videoinfo.py
Normal file
|
@ -0,0 +1,24 @@
|
|||
import asyncio
|
||||
from ..utils import Command, Call, asyncify
|
||||
from ..audio import YtdlInfo
|
||||
|
||||
|
||||
class VideoinfoCommand(Command):
|
||||
|
||||
command_name = "videoinfo"
|
||||
command_description = "Scarica e visualizza le informazioni di un video."
|
||||
command_syntax = ""
|
||||
|
||||
@classmethod
|
||||
async def common(cls, call: Call):
|
||||
url = call.args[0]
|
||||
info_list = await asyncify(YtdlInfo.create_from_url, url)
|
||||
for info in info_list:
|
||||
info_dict = info.__dict__
|
||||
message = f"🔍 Dati di [b]{info}[/b]:\n"
|
||||
for key in __dict__:
|
||||
if info_dict[key] is None:
|
||||
continue
|
||||
message += f"{key}: [b]{info_dict[key]}[/b]\n"
|
||||
await call.reply(message)
|
||||
await asyncio.sleep(0.2)
|
Loading…
Reference in a new issue