From a3b00c4693d6822acfe08b0a88f7600946efe304 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Sat, 8 Oct 2022 18:13:43 +0200 Subject: [PATCH] mpv: Fix sponsorblock code and formatting Fixed global variable naming (capitalized) and let code be formatted by formatter. --- .../mpv/scripts/sponsorblock_minimal.lua | 72 ++++++++++--------- 1 file changed, 39 insertions(+), 33 deletions(-) diff --git a/mpv/.config/mpv/scripts/sponsorblock_minimal.lua b/mpv/.config/mpv/scripts/sponsorblock_minimal.lua index a681c93..1940bc8 100644 --- a/mpv/.config/mpv/scripts/sponsorblock_minimal.lua +++ b/mpv/.config/mpv/scripts/sponsorblock_minimal.lua @@ -5,7 +5,6 @@ -- -- original from https://codeberg.org/jouni/mpv_sponsorblock_minimal -- adapted for local playback skipping and some refactoring by me - local options = { API = "https://sponsor.ajay.app/api/skipSegments", @@ -15,36 +14,39 @@ local options = { local function getranges() local args = { - "curl", - "-s", - "-d", - "videoID="..youtube_id, - "-d", - "categories=["..options.categories.."]", - "-G", - options.API} - local sponsors = mp.command_native({name = "subprocess", capture_stdout = true, playback_only = false, args = args}) + "curl", "-s", "-d", "videoID=" .. Youtube_id, "-d", + "categories=[" .. options.categories .. "]", "-G", options.API + } + local sponsors = mp.command_native({ + name = "subprocess", + capture_stdout = true, + playback_only = false, + args = args + }) - if string.match(sponsors.stdout,"%[(.-)%]") then - ranges = {} - for i in string.gmatch(string.sub(sponsors.stdout,2,-2),"%[(.-)%]") do - k,v = string.match(i,"(%d+.?%d*),(%d+.?%d*)") - ranges[k] = v - end + if string.match(sponsors.stdout, "%[(.-)%]") then + Ranges = {} + for i in string.gmatch(string.sub(sponsors.stdout, 2, -2), "%[(.-)%]") do + local k, v = string.match(i, "(%d+.?%d*),(%d+.?%d*)") + Ranges[k] = v end - return end + return +end -local function skip_ads(name,pos) +local function skip_ads(name, pos) if pos ~= nil then - for k,v in pairs(ranges) do + for k, v in pairs(Ranges) do if tonumber(k) <= pos and tonumber(v) > pos then - --this message may sometimes be wrong - --it only seems to be a visual thing though - mp.osd_message("[sponsorblock] skipping forward "..math.floor(tonumber(v)-mp.get_property("time-pos")).."s") - --need to do the +0.01 otherwise mpv will start spamming skip sometimes - --example: https://www.youtube.com/watch?v=4ypMJzeNooo - mp.set_property("time-pos",tonumber(v)+0.01) + -- this message may sometimes be wrong + -- it only seems to be a visual thing though + mp.osd_message("[sponsorblock] skipping forward " .. + math.floor( + tonumber(v) - mp.get_property("time-pos")) .. + "s") + -- need to do the +0.01 otherwise mpv will start spamming skip sometimes + -- example: https://www.youtube.com/watch?v=4ypMJzeNooo + mp.set_property("time-pos", tonumber(v) + 0.01) return end end @@ -54,19 +56,23 @@ end local function file_loaded() local video_path = mp.get_property("path") - local youtube_id1 = string.match(video_path, "https?://youtu%.be/([%w-_]+).*") - local youtube_id2 = string.match(video_path, "https?://w?w?w?%.?youtube%.com/v/([%w-_]+).*") + local youtube_id1 = string.match(video_path, + "https?://youtu%.be/([%w-_]+).*") + local youtube_id2 = string.match(video_path, + "https?://w?w?w?%.?youtube%.com/v/([%w-_]+).*") local youtube_id3 = string.match(video_path, "/watch.*[?&]v=([%w-_]+).*") local youtube_id4 = string.match(video_path, "/embed/([%w-_]+).*") - local localytfile = string.match(video_path, "-([%a%d%-_]+)%.[mw][kpe][v4b][m]?$") - youtube_id = youtube_id1 or youtube_id2 or youtube_id3 or youtube_id4 or localytfile - if not youtube_id or string.len(youtube_id) < 11 then return end - youtube_id = string.sub(youtube_id, 1, 11) + local localytfile = string.match(video_path, + "-([%a%d%-_]+)%.[mw][kpe][v4b][m]?$") + Youtube_id = youtube_id1 or youtube_id2 or youtube_id3 or youtube_id4 or + localytfile + if not Youtube_id or string.len(Youtube_id) < 11 then return end + Youtube_id = string.sub(Youtube_id, 1, 11) getranges() - if ranges then + if Ranges then ON = true - mp.add_key_binding("b","sponsorblock",toggle) + mp.add_key_binding("b", "sponsorblock", toggle) mp.observe_property("time-pos", "native", skip_ads) end return