mirror of
https://gitea.invidious.io/iv-org/invidious-copy-2023-06-08.git
synced 2024-08-15 00:53:38 +00:00
Add support for AAhBBmCCsDDms in video start and end params
This commit is contained in:
parent
fef2cbc0b2
commit
75f8fcd40b
3 changed files with 35 additions and 7 deletions
|
@ -643,3 +643,25 @@ def fetch_user(sid, client, headers)
|
|||
user = User.new(sid, Time.now, [] of String, channels, email)
|
||||
return user
|
||||
end
|
||||
|
||||
def decode_time(string)
|
||||
time = string.try &.to_f?
|
||||
|
||||
if !time
|
||||
hours = /(?<hours>\d+)h/.match(string).try &.["hours"].try &.to_i
|
||||
hours ||= 0
|
||||
|
||||
minutes = /(?<minutes>\d+)m/.match(string).try &.["minutes"].try &.to_i
|
||||
minutes ||= 0
|
||||
|
||||
seconds = /(?<seconds>\d+)s/.match(string).try &.["seconds"].try &.to_i
|
||||
seconds ||= 0
|
||||
|
||||
millis = /(?<millis>\d+)ms/.match(string).try &.["millis"].try &.to_i
|
||||
millis ||= 0
|
||||
|
||||
time = hours * 3600 + minutes * 60 + seconds + millis / 1000
|
||||
end
|
||||
|
||||
return time
|
||||
end
|
||||
|
|
|
@ -242,17 +242,23 @@ get "/watch" do |env|
|
|||
next env.redirect "/"
|
||||
end
|
||||
|
||||
video_start = env.params.query["start"]?.try &.to_i
|
||||
video_start ||= 0
|
||||
if env.params.query["start"]?
|
||||
video_start = decode_time(env.params.query["start"])
|
||||
else
|
||||
video_start = 0
|
||||
end
|
||||
|
||||
video_end = env.params.query["end"]?.try &.to_i
|
||||
video_end ||= -1
|
||||
if env.params.query["end"]?
|
||||
video_end = decode_time(env.params.query["end"])
|
||||
else
|
||||
video_end = -1
|
||||
end
|
||||
|
||||
listen = false
|
||||
if env.params.query["listen"]? && env.params.query["listen"] == "true"
|
||||
listen = true
|
||||
env.params.query.delete_all("listen")
|
||||
end
|
||||
listen ||= false
|
||||
|
||||
authorized = env.get? "authorized"
|
||||
if authorized
|
||||
|
|
|
@ -74,10 +74,10 @@ var player = videojs('player', options, function() {
|
|||
}
|
||||
});
|
||||
});
|
||||
|
||||
player.offset({
|
||||
start: <%= video_start %>,
|
||||
end: <%= video_end %>,
|
||||
restart_beginning: true
|
||||
end: <%= video_end %>
|
||||
});
|
||||
|
||||
function toggle(target) {
|
||||
|
|
Loading…
Reference in a new issue