コード例 #1
0
def status(request):
    result = {"message": "failed"}
    try:
        vlc_config = get_vlc_config_from_redis()
        vlc = VLCController(vlc_config)
        result["status"] = vlc.get_common_info()
        result["message"] = "success"
    except Exception as e:
        print(e)
        result["error"] = str(e)
    return json_result(result)
コード例 #2
0
def seek(request):
    result = {"message": "failed"}
    try:
        vlc_config = get_vlc_config_from_redis()
        vlc = VLCController(vlc_config)
        seconds = request.args.get("seconds")
        if seconds == False or seconds == None:
            seconds = 1
        vlc.seek(seconds)
        result["status"] = vlc.get_common_info()
        result["message"] = "success"
    except Exception as e:
        print(e)
        result["error"] = str(e)
    return json_result(result)
コード例 #3
0
def volume_down(request):
    result = {"message": "failed"}
    try:
        vlc_config = get_vlc_config_from_redis()
        vlc = VLCController(vlc_config)
        step = request.args.get("step")
        if step == False or step == None:
            step = 1
        vlc.volume_down(step)
        result["status"] = vlc.get_common_info()
        result["message"] = "success"
    except Exception as e:
        print(e)
        result["error"] = str(e)
    return json_result(result)
コード例 #4
0
def add(request):
    result = {"message": "failed"}
    try:
        vlc_config = get_vlc_config_from_redis()
        vlc = VLCController(vlc_config)
        file_path = request.args.get("file_path")
        vlc.add(file_path)
        time.sleep(1)
        vlc.fullscreen_on()
        result["status"] = vlc.get_common_info()
        result["message"] = "success"
    except Exception as e:
        print(e)
        result["error"] = str(e)
    return json_result(result)
コード例 #5
0
def next(request):
    result = {"message": "failed"}
    try:
        # 1.) Get State
        ensure_usb_drive_is_mounted()
        redis = redis_connect()
        config = redis.get("CONFIG.LOCAL_STORAGE_CONTROLLER_SERVER")
        config = json.loads(config)
        vlc_config = config["vlc"]

        # 2.) Advance to Next TV Show in Circular List
        next_tv_show_name_b64 = redis_circular_list.next(
            redis, "STATE.USB_STORAGE.LIBRARY.TV_SHOWS")
        next_tv_show_name = utils.base64_decode(next_tv_show_name_b64)

        # 3.) Advance to Next Episode in TV Show even though current one might be un-finished
        file_path_b64 = redis_circular_list.next(
            redis,
            f"STATE.USB_STORAGE.LIBRARY.TV_SHOWS.{next_tv_show_name_b64}")
        episode = get_current_episode(file_path_b64)

        # 4.) Start Episode
        vlc = VLCController(vlc_config)
        vlc.add(episode["file_path"])
        time.sleep(1)
        if int(episode["current_time"]) > 5:
            vlc.seek(int(episode["current_time"]) - 5)
        vlc.volume_set(100)
        time.sleep(3)
        vlc.fullscreen_on()

        # 5.) Get Status
        result["status"] = vlc.get_common_info()
        pprint(result["status"])

        # 6.) Update Duration
        update_duration_metadata(result["status"]["status"]["duration"],
                                 result["status"]["status"]["file_path"])

        result["message"] = "success"
    except Exception as e:
        print(e)
        result["error"] = str(e)
    return json_result(result)
コード例 #6
0
def play(request):
    result = {"message": "failed"}
    try:
        # 1.) Get State
        ensure_usb_drive_is_mounted()
        vlc_config = get_vlc_config_from_redis()
        vlc = VLCController(vlc_config)

        # 2.) Calculate Next Episode
        file_path = request.args.get("file_path")
        next_episode = get_next_episode(file_path)
        pprint(next_episode)

        # 3.) Play Episode
        vlc.add(next_episode["file_path"])
        time.sleep(1)
        if int(next_episode["current_time"]) > 5:
            vlc.seek(int(next_episode["current_time"]) - 5)
        vlc.volume_set(100)
        time.sleep(3)
        vlc.fullscreen_on()

        # 4.) Get Status
        result["status"] = vlc.get_common_info()

        # 5.) Update Duration Meta Data
        update_duration_metadata(result["status"]["status"]["duration"],
                                 result["status"]["status"]["file_path"])

        result["message"] = "success"
    except Exception as e:
        print(e)
        result["error"] = str(e)
    return json_result(result)
 def __init__(self):
     self.vlcController = VLCController()
     self.volumeController = VolumeController()
     self.mouseController = MouseController()
コード例 #8
0
from vlc_controller import VLCController
import time
from pprint import pprint

if __name__ == "__main__":
    vlc = VLCController()
    print(f"Connected = {vlc.connected}")
    vlc.add(
        "/media/187A29A07A297B9E/MEDIA_MANAGER/TVShows/TrailerParkBoys/12/Trailer.Park.Boys.S12E02.Godspeed.My.Muscular.Friend.1080p.NF.WEB-DL.DD5.1.H264-SiGMA.mkv"
    )
    time.sleep(3)
    pprint(vlc.get_common_info())