mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-05-25 12:55:18 -07:00
127e1ea88e
- Add per-stream subtitle delay persistence and auto timeline-offset correction - Strip server-selected subtitle stream from mpv load URL; suppress plugin subtitle rearm and auto-start during app-managed preload - Fix resume position lost when mpv resets on stop; use last known position for final progress/stopped reports - Keep Play vs Resume distinct to avoid early seek race on normal play - Fix discovery resume when remote play sends StartPositionTicks=0 despite saved progress - Deduplicate show/hide overlay commands using recorded visibility state - Rewrite docs-site Jellyfin page around cast-to-device UX
72 lines
2.2 KiB
Lua
72 lines
2.2 KiB
Lua
local M = {}
|
|
|
|
function M.create(ctx)
|
|
local mp = ctx.mp
|
|
local process = ctx.process
|
|
local aniskip = ctx.aniskip
|
|
local hover = ctx.hover
|
|
local ui = ctx.ui
|
|
local state = ctx.state
|
|
|
|
local function register_script_messages()
|
|
mp.register_script_message("subminer-start", function(...)
|
|
process.start_overlay_from_script_message(...)
|
|
end)
|
|
mp.register_script_message("subminer-stop", function()
|
|
process.stop_overlay()
|
|
end)
|
|
mp.register_script_message("subminer-toggle", function()
|
|
process.toggle_overlay()
|
|
end)
|
|
mp.register_script_message("subminer-visible-overlay-hidden", function()
|
|
process.record_visible_overlay_visibility(false)
|
|
end)
|
|
mp.register_script_message("subminer-visible-overlay-shown", function()
|
|
process.record_visible_overlay_visibility(true)
|
|
end)
|
|
mp.register_script_message("subminer-managed-subtitles-loading", function()
|
|
state.skip_managed_subtitle_rearm_once = true
|
|
state.app_managed_playback_pending = true
|
|
end)
|
|
mp.register_script_message("subminer-menu", function()
|
|
ui.show_menu()
|
|
end)
|
|
mp.register_script_message("subminer-options", function()
|
|
process.open_options()
|
|
end)
|
|
mp.register_script_message("subminer-restart", function()
|
|
process.restart_overlay()
|
|
end)
|
|
mp.register_script_message("subminer-status", function()
|
|
process.check_status()
|
|
end)
|
|
mp.register_script_message("subminer-autoplay-ready", function()
|
|
process.notify_auto_play_ready()
|
|
end)
|
|
mp.register_script_message("subminer-aniskip-refresh", function()
|
|
aniskip.fetch_aniskip_for_current_media("script-message")
|
|
end)
|
|
mp.register_script_message("subminer-skip-intro", function()
|
|
aniskip.skip_intro_now()
|
|
end)
|
|
mp.register_script_message(hover.HOVER_MESSAGE_NAME, function(payload_json)
|
|
hover.handle_hover_message(payload_json)
|
|
end)
|
|
mp.register_script_message(hover.HOVER_MESSAGE_NAME_LEGACY, function(payload_json)
|
|
hover.handle_hover_message(payload_json)
|
|
end)
|
|
mp.register_script_message("subminer-stats-toggle", function()
|
|
mp.osd_message("Stats: press ` (backtick) in overlay", 3)
|
|
end)
|
|
mp.register_script_message("subminer-reload-session-bindings", function()
|
|
ctx.session_bindings.reload_bindings()
|
|
end)
|
|
end
|
|
|
|
return {
|
|
register_script_messages = register_script_messages,
|
|
}
|
|
end
|
|
|
|
return M
|