50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
import logging
|
|
import os
|
|
from typing import Dict
|
|
|
|
logger = logging.getLogger("desktopenv.getters.vlc")
|
|
|
|
|
|
def get_vlc_playing_info(env, config: Dict[str, str]):
|
|
"""
|
|
Gets the current playing information from VLC's HTTP interface.
|
|
"""
|
|
_path = os.path.join(env.cache_dir, config["dest"])
|
|
|
|
host = env.vm_ip
|
|
port = 8080
|
|
password = 'password'
|
|
|
|
content = env.controller.get_vlc_status(host, port, password)
|
|
with open(_path, "wb") as f:
|
|
f.write(content)
|
|
|
|
return _path
|
|
|
|
|
|
def get_vlc_config(env, config: Dict[str, str]):
|
|
"""
|
|
Reads the VLC configuration file to check setting.
|
|
"""
|
|
_path = os.path.join(env.cache_dir, config["dest"])
|
|
|
|
os_type = env.controller.execute_python_command("import platform; print(platform.system())")['output'].strip()
|
|
|
|
# fixme: depends on how we config and install the vlc in virtual machine, need to be aligned and double-checked
|
|
if os_type == "Linux":
|
|
config_path = \
|
|
env.controller.execute_python_command("import os; print(os.path.expanduser('~/snap/vlc/common/vlcrc'))")[
|
|
'output'].strip()
|
|
elif os_type == "Darwin":
|
|
config_path = env.controller.execute_python_command(
|
|
"import os; print(os.path.expanduser('~/Library/Preferences/org.videolan.vlc/vlcrc'))")['output'].strip()
|
|
elif os_type == "Windows":
|
|
config_path = env.controller.execute_python_command(
|
|
"import os; print(os.path.expanduser('~\\AppData\\Roaming\\vlc\\vlcrc'))")['output'].strip()
|
|
|
|
content = env.controller.get_file(config_path)
|
|
with open(_path, "wb") as f:
|
|
f.write(content)
|
|
|
|
return _path
|