modern_lisp-machine/.config/mpv/scripts/force-japanese.lua~

61 lines
1.7 KiB
Lua
Raw Normal View History

2024-09-08 20:06:38 +00:00
local preferred_alangs = {"jpn", "ja", "japanese"}
local preferred_slangs = {"jpn", "ja", "japanese"}
local phrases = {
"日本語オンリーで行こう!英語なんて大嫌い!",
"これで完全に日本語モードです!",
"やったね!日本語が優先されました!",
"日本語が一番!英語は嫌いだ!",
"今、完全に日本語です!英語はなし!"
}
function select_tracks()
local tracks = mp.get_property_native("track-list")
-- Disable all subtitles at the beginning
for _, track in ipairs(tracks) do
if track.type == "sub" then
mp.set_property("sid", "no", track.id)
end
end
local japanese_subtitle_tracks = {}
-- Enable Japanese subtitles if available
for _, track in ipairs(tracks) do
if track.type == "sub" and table.contains(preferred_slangs, track.lang) then
table.insert(japanese_subtitle_tracks, track.id)
end
end
if #japanese_subtitle_tracks > 0 then
mp.set_property("sid", japanese_subtitle_tracks[1])
end
-- Add a delay to ensure the tracks are loaded before displaying the phrase
mp.add_timeout(5, function()
show_phrase()
end)
end
function table.contains(table, value)
for _, v in ipairs(table) do
if v == value then
return true
end
end
return false
end
function show_phrase()
local phrase = phrases[math.random(#phrases)]
mp.osd_message(phrase, 2000)
end
mp.register_event("file-loaded", select_tracks)
-- Ensure the phrase shows up when MPV is not in idle mode
if not mp.get_property_native("idle") then
select_tracks()
end