Finish VLC v2 loading

This commit is contained in:
Timothyxxx
2024-01-25 12:40:00 +08:00
parent 8a9f8e116b
commit 37ec196b18
10 changed files with 464 additions and 36 deletions

View File

@@ -1,4 +1,5 @@
from .chrome import is_expected_tabs, is_expected_bookmarks, compare_pdfs, is_cookie_deleted, is_shortcut_on_desktop
from .chrome import is_expected_tabs, is_expected_bookmarks, compare_pdfs, is_cookie_deleted, is_shortcut_on_desktop, check_font_size, \
check_enabled_experiments, check_history_deleted
from .docs import compare_font_names, compare_subscript_contains, has_page_numbers_in_footers, compare_docx_lines
from .docs import find_default_font, contains_page_break, compare_docx_files, compare_docx_tables, compare_line_spacing, \
compare_insert_equation, compare_highlighted_text
@@ -17,6 +18,6 @@ from .pdf import check_pdf_pages
from .table import compare_table
from .thunderbird import check_thunderbird_prefs, check_thunderbird_filter
from .vlc import is_vlc_playing, is_vlc_recordings_folder, is_vlc_fullscreen, compare_images, compare_audios, \
compare_videos
from .thunderbird import check_thunderbird_prefs, check_thunderbird_filter
compare_videos, check_qt_bgcone, check_one_instance_when_started_from_file,check_qt_minimal_view, check_qt_max_volume, \
check_qt_slider_colours, check_global_key_play_pause
from .vscode import compare_text_file, compare_config, compare_answer, is_extension_installed, check_json_settings, check_json_keybindings

View File

@@ -53,7 +53,7 @@ def is_vlc_recordings_folder(actual_config_path: str, rule: Dict[str, str]) -> f
expected_recording_file_path = rule['recording_file_path']
try:
for line in config_file:
for line in config_file.split("\n"):
# Skip comments and empty lines
if line.startswith('#') or not line.strip():
continue
@@ -216,3 +216,195 @@ def are_audio_files_similar(mp3_file_path, mp4_file_path):
return True
return False
def check_qt_bgcone(actual_config_path, rule):
with open(actual_config_path, 'rb') as file:
config_file = file.read().decode('utf-8')
expected_qt_bgcone = rule['expected_qt_bgcone']
if isinstance(expected_qt_bgcone, int):
expected_qt_bgcone = str(expected_qt_bgcone)
try:
# The default value of qt_bgcone is 1, which means it is enabled
qt_bgcone = "1"
for line in config_file.split("\n"):
# Check if the line contains the recording path setting
if 'qt-bgcone=' in line:
# Extract the value of the recording path and remove surrounding whitespace
qt_bgcone = line.split('=')[-1].strip()
# The configuration key was not found in the file
if qt_bgcone == expected_qt_bgcone:
return 1
else:
return 0
except FileNotFoundError:
logger.error("VLC configuration file not found.")
return 0
except Exception as e:
logger.error(f"An error occurred: {e}")
return 0
def check_qt_max_volume(actual_config_path, rule):
with open(actual_config_path, 'rb') as file:
config_file = file.read().decode('utf-8')
expected_qt_max_volume = rule['expected_qt_max_volume']
if isinstance(expected_qt_max_volume, int):
expected_qt_max_volume = str(expected_qt_max_volume)
try:
qt_max_volume = "125"
for line in config_file.split("\n"):
if 'qt-max-volume=' in line:
qt_max_volume = line.split('=')[-1].strip()
# The configuration key was not found in the file
if qt_max_volume == expected_qt_max_volume:
return 1
else:
return 0
except FileNotFoundError:
logger.error("VLC configuration file not found.")
return 0
except Exception as e:
logger.error(f"An error occurred: {e}")
return 0
def check_qt_minimal_view(actual_config_path, rule):
with open(actual_config_path, 'rb') as file:
config_file = file.read().decode('utf-8')
expected_qt_minimal_view = rule['expected_qt_minimal_view']
if isinstance(expected_qt_minimal_view, int):
expected_qt_minimal_view = str(expected_qt_minimal_view)
try:
qt_minimal_view = "0"
for line in config_file.split("\n"):
if 'qt-minimal-view=' in line:
qt_minimal_view = line.split('=')[-1].strip()
if qt_minimal_view == expected_qt_minimal_view:
return 1
else:
return 0
except FileNotFoundError:
logger.error("VLC configuration file not found.")
return 0
except Exception as e:
logger.error(f"An error occurred: {e}")
return 0
def check_qt_slider_colours(actual_config_path, rule):
with open(actual_config_path, 'rb') as file:
config_file = file.read().decode('utf-8')
try:
qt_slider_colours = "153;210;153;20;210;20;255;199;15;245;39;29"
for line in config_file.split("\n"):
if 'qt-slider-colours' in line:
qt_slider_colours = line.split('=')[-1].strip()
# The configuration key was not found in the file
if rule['type'] == 'match':
expected_qt_slider_colours = rule['expected_qt_slider_colours']
if qt_slider_colours == expected_qt_slider_colours:
return 1
else:
return 0
elif rule['type'] == 'blackish':
def is_color_blackish(rgb_values, threshold=100):
# decide if the color is blackish
return all(value < threshold for value in rgb_values)
def parse_qt_slider_colours(colours_string):
# parse the string of colours into a list of RGB tuples
values = [int(x) for x in colours_string.split(';')]
colors = list(zip(values[0::3], values[1::3], values[2::3]))
return colors
colors = parse_qt_slider_colours(qt_slider_colours)
# check if all colors are blackish
for color in colors:
if is_color_blackish(color):
pass
else:
return 0
return 1
except FileNotFoundError:
logger.error("VLC configuration file not found.")
return 0
except Exception as e:
logger.error(f"An error occurred: {e}")
return 0
def check_global_key_play_pause(actual_config_path, rule):
"""
# Play/Pause (str)
#global-key-play-pause=
# Play/Pause (str)
#key-play-pause=Space
"""
with open(actual_config_path, 'rb') as file:
config_file = file.read().decode('utf-8')
expected_global_key_play_pause = rule['expected_global_key_play_pause']
if isinstance(expected_global_key_play_pause, int):
expected_global_key_play_pause = str(expected_global_key_play_pause)
try:
global_key_play_pause = "0"
for line in config_file.split("\n"):
# Check if the line contains the recording path setting
if 'global-key-play-pause=' in line:
global_key_play_pause = "0" if line.split('=')[-1].strip() == "" else "1"
if global_key_play_pause == expected_global_key_play_pause:
return 1
else:
return 0
except FileNotFoundError:
logger.error("VLC configuration file not found.")
return 0
except Exception as e:
logger.error(f"An error occurred: {e}")
return 0
def check_one_instance_when_started_from_file(actual_config_path, rule):
with open(actual_config_path, 'rb') as file:
config_file = file.read().decode('utf-8')
expected_one_instance_when_started_from_file = rule['expected_one_instance_when_started_from_file']
if isinstance(expected_one_instance_when_started_from_file, int):
expected_one_instance_when_started_from_file = str(expected_one_instance_when_started_from_file)
try:
one_instance_when_started_from_file = "1"
for line in config_file.split("\n"):
# Check if the line contains the recording path setting
if 'one-instance-when-started-from-file=' in line:
one_instance_when_started_from_file = line.split('=')[-1].strip()
if one_instance_when_started_from_file == expected_one_instance_when_started_from_file:
return 1
else:
return 0
except FileNotFoundError:
logger.error("VLC configuration file not found.")
return 0
except Exception as e:
logger.error(f"An error occurred: {e}")
return 0

View File

@@ -6,7 +6,7 @@
"config": [],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
"vlc"
],
"evaluator": {
"func": "",

View File

@@ -3,16 +3,46 @@
"snapshot": "chrome",
"instruction": "Can you disable the cone icon in the splash screen? I am tired of its skeuomorphic design.",
"source": "https://superuser.com/questions/1224784/how-to-change-vlcs-splash-screen",
"config": [],
"config": [
{
"type": "launch",
"parameters": {
"command": "vlc"
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
"vlc"
],
"evaluator": {
"func": "",
"result": {
},
"postconfig": [
{
"type": "launch",
"parameters": {
"command": [
"pkill",
"vlc"
]
}
},
{
"type": "launch",
"parameters": {
"command": "vlc"
}
}
],
"func": "check_qt_bgcone",
"expected": {
"type": "rule",
"rules": {
"expected_qt_bgcone": 0
}
},
"result": {
"type": "vlc_config",
"dest": "vlcrc"
}
}
}

View File

@@ -3,16 +3,101 @@
"snapshot": "chrome",
"instruction": "I am reading lecture note in PDF while a music video is running in VLC media player. But I find I need to switch to the player every time I need to pause/start.Could you help me change the setting to allow pausing the video using keyboard shortcut without minimizing the PDF reader? I want to focus on the lecture note and don't be disturbed by the app switching.",
"source": "https://superuser.com/questions/1708415/pause-and-play-vlc-in-background?rq=1",
"config": [],
"config": [
{
"type": "download",
"parameters": {
"files": [
{
"url": "https://drive.usercontent.google.com/download?id=1JqKzFk-4ru1BQdaInui37ORPC1btl7PK&export=download&authuser=0&confirm=t&uuid=449004d6-6f52-4ae3-9008-c2a0a6e0d17f&at=APZUnTXYRTL_FkB5l1TgseCgdSPK:1706155700724",
"path": "Desktop/lecture.pdf"
}
]
}
},
{
"type": "download",
"parameters": {
"files": [
{
"url": "https://drive.usercontent.google.com/download?id=1jS74kYGOcEMOWyHZxlqmQVPmIC6A-UBm&export=download&authuser=0&confirm=t&uuid=0521f46a-9aa5-4dfc-9761-ae6256a31488&at=APZUnTWwRv10ztlVQq2oVsiMX2_r:1706155684550",
"path": "Desktop/Colorful-Flowers.mp3"
}
]
}
},
{
"type": "launch",
"parameters": {
"command": [
"vlc",
"--start-time=10",
"Desktop/Colorful-Flowers.mp3"
]
}
},
{
"type": "open",
"parameters": {
"path": "Desktop/lecture.pdf"
}
},
{
"type": "activate_window",
"parameters": {
"window_name": "lecture.pdf — 6.006 Introduction to Algorithms, Lecture 2: Data Structures",
"strict": true
}
},
{
"type": "sleep",
"parameters": {
"seconds": 0.5
}
},
{
"type": "execute",
"parameters": {
"command": [
"python",
"-c",
"import pyautogui; pyautogui.press('f11');"
]
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
"vlc"
],
"evaluator": {
"func": "",
"result": {
},
"postconfig": [
{
"type": "launch",
"parameters": {
"command": [
"pkill",
"vlc"
]
}
},
{
"type": "launch",
"parameters": {
"command": "vlc"
}
}
],
"func": "check_global_key_play_pause",
"expected": {
"type": "rule",
"rules": {
"expected_global_key_play_pause": 1
}
},
"result": {
"type": "vlc_config",
"dest": "vlcrc"
}
}
}

View File

@@ -3,16 +3,46 @@
"snapshot": "chrome",
"instruction": "I like watching movies (using VLC) on my laptop and sometimes the volume is too low for my taste even when the volume in VLC is set to the maximum of 125% on the volume control. Can you increase the max volume of the video to the 200% of the original volume?",
"source": "https://superuser.com/questions/1513285/how-can-i-increase-the-maximum-volume-output-by-vlc?rq=1",
"config": [],
"config": [
{
"type": "launch",
"parameters": {
"command": "vlc"
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
"vlc"
],
"evaluator": {
"func": "",
"result": {
},
"postconfig": [
{
"type": "launch",
"parameters": {
"command": [
"pkill",
"vlc"
]
}
},
{
"type": "launch",
"parameters": {
"command": "vlc"
}
}
],
"func": "check_qt_max_volume",
"expected": {
"type": "rule",
"rules": {
"expected_qt_max_volume": 200
}
},
"result": {
"type": "vlc_config",
"dest": "vlcrc"
}
}
}

View File

@@ -3,16 +3,46 @@
"snapshot": "chrome",
"instruction": "Could you help me hide the bottom toolbar in VLC Media Player when watching in window mode? I often multitask on my computer, and the persistent toolbar in VLC is very distracting. ",
"source": "https://superuser.com/questions/776056/how-to-hide-bottom-toolbar-in-vlc",
"config": [],
"config": [
{
"type": "launch",
"parameters": {
"command": "vlc"
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
"vlc"
],
"evaluator": {
"func": "",
"result": {
},
"postconfig": [
{
"type": "launch",
"parameters": {
"command": [
"pkill",
"vlc"
]
}
},
{
"type": "launch",
"parameters": {
"command": "vlc"
}
}
],
"func": "check_qt_minimal_view",
"expected": {
"type": "rule",
"rules": {
"expected_qt_minimal_view": 1
}
},
"result": {
"type": "vlc_config",
"dest": "vlcrc"
}
}
}

View File

@@ -3,16 +3,46 @@
"snapshot": "chrome",
"instruction": "Can you change the color of the volume slider to black-ish color? I often use the player in a low-light environment, and a darker color scheme would be less straining on my eyes, especially during nighttime usage.",
"source": "https://superuser.com/questions/1039392/changing-colour-of-vlc-volume-slider",
"config": [],
"config": [
{
"type": "launch",
"parameters": {
"command": "vlc"
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
"vlc"
],
"evaluator": {
"func": "",
"result": {
},
"postconfig": [
{
"type": "launch",
"parameters": {
"command": [
"pkill",
"vlc"
]
}
},
{
"type": "launch",
"parameters": {
"command": "vlc"
}
}
],
"func": "check_qt_slider_colours",
"expected": {
"type": "rule",
"rules": {
"type": "blackish"
}
},
"result": {
"type": "vlc_config",
"dest": "vlcrc"
}
}
}

View File

@@ -6,7 +6,7 @@
"config": [],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
"vlc"
],
"evaluator": {
"func": "",

View File

@@ -3,16 +3,46 @@
"snapshot": "chrome",
"instruction": "I want to watch two or more videos in same time on VLC. I tried to run multiple instances of VLC. It worked but can't play videos on those new instances. When I play video it plays on first instance instead of new instance.\nIs there any way to solve this problem? Take the three videos on my desktop for example, do that for me.",
"source": "https://www.reddit.com/r/Fedora/comments/rhljzd/how_to_run_multiple_instances_of_vlc_media_player/",
"config": [],
"config": [
{
"type": "launch",
"parameters": {
"command": "vlc"
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
"vlc"
],
"evaluator": {
"func": "",
"result": {
},
"postconfig": [
{
"type": "launch",
"parameters": {
"command": [
"pkill",
"vlc"
]
}
},
{
"type": "launch",
"parameters": {
"command": "vlc"
}
}
],
"func": "check_one_instance_when_started_from_file",
"expected": {
"type": "rule",
"rules": {
"expected_one_instance_when_started_from_file": 0
}
},
"result": {
"type": "vlc_config",
"dest": "vlcrc"
}
}
}