diff options
| author | Agustin Ferrari <agustinferrari@gmx.com> | 2019-02-01 20:15:34 -0300 |
|---|---|---|
| committer | Agustin Ferrari <agustinferrari@gmx.com> | 2019-02-01 20:15:34 -0300 |
| commit | c0e73e71c58f632f6bf83dbc8e6c6bbf8e3b233e (patch) | |
| tree | 1f287780c7faa1e93c7eed8856cfb504e34aa7d9 /src | |
| parent | b0ba670c919e4d1f4613ebc8973a8a1065dc4292 (diff) | |
| parent | d5c9b7dfe8055e939c555c32d106f02c7f983120 (diff) | |
| download | invidious-c0e73e71c58f632f6bf83dbc8e6c6bbf8e3b233e.tar.gz invidious-c0e73e71c58f632f6bf83dbc8e6c6bbf8e3b233e.tar.bz2 invidious-c0e73e71c58f632f6bf83dbc8e6c6bbf8e3b233e.zip | |
Merge branch 'master' of https://github.com/omarroth/invidious
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious.cr | 22 | ||||
| -rw-r--r-- | src/invidious/users.cr | 18 | ||||
| -rw-r--r-- | src/invidious/videos.cr | 20 | ||||
| -rw-r--r-- | src/invidious/views/components/player.ecr | 48 | ||||
| -rw-r--r-- | src/invidious/views/watch.ecr | 2 |
5 files changed, 51 insertions, 59 deletions
diff --git a/src/invidious.cr b/src/invidious.cr index a720670a..99f9e1af 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -1128,21 +1128,21 @@ post "/preferences" do |env| listen = listen == "on" speed = env.params.body["speed"]?.try &.as(String).to_f? - speed ||= 1.0 + speed ||= DEFAULT_USER_PREFERENCES.speed quality = env.params.body["quality"]?.try &.as(String) - quality ||= "hd720" + quality ||= DEFAULT_USER_PREFERENCES.quality volume = env.params.body["volume"]?.try &.as(String).to_i? - volume ||= 100 + volume ||= DEFAULT_USER_PREFERENCES.volume - comments_0 = env.params.body["comments_0"]?.try &.as(String) || "youtube" - comments_1 = env.params.body["comments_1"]?.try &.as(String) || "" + comments_0 = env.params.body["comments_0"]?.try &.as(String) || DEFAULT_USER_PREFERENCES.comments[0] + comments_1 = env.params.body["comments_1"]?.try &.as(String) || DEFAULT_USER_PREFERENCES.comments[1] comments = [comments_0, comments_1] - captions_0 = env.params.body["captions_0"]?.try &.as(String) || "" - captions_1 = env.params.body["captions_1"]?.try &.as(String) || "" - captions_2 = env.params.body["captions_2"]?.try &.as(String) || "" + captions_0 = env.params.body["captions_0"]?.try &.as(String) || DEFAULT_USER_PREFERENCES.captions[0] + captions_1 = env.params.body["captions_1"]?.try &.as(String) || DEFAULT_USER_PREFERENCES.captions[1] + captions_2 = env.params.body["captions_2"]?.try &.as(String) || DEFAULT_USER_PREFERENCES.captions[2] captions = [captions_0, captions_1, captions_2] related_videos = env.params.body["related_videos"]?.try &.as(String) @@ -1154,7 +1154,7 @@ post "/preferences" do |env| redirect_feed = redirect_feed == "on" locale = env.params.body["locale"]?.try &.as(String) - locale ||= "en-US" + locale ||= DEFAULT_USER_PREFERENCES.locale dark_mode = env.params.body["dark_mode"]?.try &.as(String) dark_mode ||= "off" @@ -1165,10 +1165,10 @@ post "/preferences" do |env| thin_mode = thin_mode == "on" max_results = env.params.body["max_results"]?.try &.as(String).to_i? - max_results ||= 40 + max_results ||= DEFAULT_USER_PREFERENCES.max_results sort = env.params.body["sort"]?.try &.as(String) - sort ||= "published" + sort ||= DEFAULT_USER_PREFERENCES.sort latest_only = env.params.body["latest_only"]?.try &.as(String) latest_only ||= "off" diff --git a/src/invidious/users.cr b/src/invidious/users.cr index dbbe87f8..d45c5af4 100644 --- a/src/invidious/users.cr +++ b/src/invidious/users.cr @@ -79,36 +79,36 @@ class Preferences autoplay: Bool, continue: { type: Bool, - default: false, + default: DEFAULT_USER_PREFERENCES.continue, }, listen: { type: Bool, - default: false, + default: DEFAULT_USER_PREFERENCES.listen, }, speed: Float32, quality: String, volume: Int32, comments: { type: Array(String), - default: ["youtube", ""], + default: DEFAULT_USER_PREFERENCES.comments, converter: StringToArray, }, captions: { type: Array(String), - default: ["", "", ""], + default: DEFAULT_USER_PREFERENCES.captions, }, redirect_feed: { type: Bool, - default: false, + default: DEFAULT_USER_PREFERENCES.redirect_feed, }, related_videos: { type: Bool, - default: true, + default: DEFAULT_USER_PREFERENCES.related_videos, }, dark_mode: Bool, thin_mode: { type: Bool, - default: false, + default: DEFAULT_USER_PREFERENCES.thin_mode, }, max_results: Int32, sort: String, @@ -116,11 +116,11 @@ class Preferences unseen_only: Bool, notifications_only: { type: Bool, - default: false, + default: DEFAULT_USER_PREFERENCES.notifications_only, }, locale: { type: String, - default: "en-US", + default: DEFAULT_USER_PREFERENCES.locale, }, }) end diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr index ec911e3f..a95f5443 100644 --- a/src/invidious/videos.cr +++ b/src/invidious/videos.cr @@ -633,6 +633,10 @@ def fetch_video(id, proxies, region) end end + if info["errorcode"]?.try &.== "2" + raise "Video unavailable." + end + title = info["title"] author = info["author"] ucid = info["ucid"] @@ -741,14 +745,14 @@ def process_video_params(query, preferences) volume ||= preferences.volume end - autoplay ||= 0 - continue ||= 0 - listen ||= 0 - preferred_captions ||= [] of String - quality ||= "hd720" - speed ||= 1 - video_loop ||= 0 - volume ||= 100 + autoplay ||= DEFAULT_USER_PREFERENCES.autoplay.to_unsafe + continue ||= DEFAULT_USER_PREFERENCES.continue.to_unsafe + listen ||= DEFAULT_USER_PREFERENCES.listen.to_unsafe + preferred_captions ||= DEFAULT_USER_PREFERENCES.captions + quality ||= DEFAULT_USER_PREFERENCES.quality + speed ||= DEFAULT_USER_PREFERENCES.speed + video_loop ||= DEFAULT_USER_PREFERENCES.video_loop.to_unsafe + volume ||= DEFAULT_USER_PREFERENCES.volume autoplay = autoplay == 1 continue = continue == 1 diff --git a/src/invidious/views/components/player.ecr b/src/invidious/views/components/player.ecr index 80879b67..7f932ef4 100644 --- a/src/invidious/views/components/player.ecr +++ b/src/invidious/views/components/player.ecr @@ -115,37 +115,25 @@ var player = videojs("player", options, function() { }); player.on('error', function(event) { - if (player.error().code === 2) { - console.log("An error occured in the player, reloading..."); - - var currentTime = player.currentTime(); - var playbackRate = player.playbackRate(); - player.load(); - if (currentTime > 0.5) { - currentTime -= 0.5; - } - player.currentTime(currentTime); - player.playbackRate(playbackRate); - player.play() - } else if (player.error().code === 4) { - console.log("Detected invalid source, removing..."); - var currentTime = player.currentTime(); - var sources = player.options().sources; - - for (var i = 0; i < sources.length; i++) { - if (sources[i].src === player.currentSource().src) { - sources.splice(i, 1); - break - } - }; + if (player.error().code === 2 || player.error().code === 4) { + setInterval(setTimeout(function (event) { + console.log("An error occured in the player, reloading..."); - player.load(); - if (currentTime > 0.5) { - currentTime -= 0.5; - } - player.currentTime(currentTime); - player.src(sources); - player.play(); + var currentTime = player.currentTime(); + var playbackRate = player.playbackRate(); + var paused = player.paused() + + player.load(); + if (currentTime > 0.5) { + currentTime -= 0.5; + } + player.currentTime(currentTime); + player.playbackRate(playbackRate); + + if (!paused) { + player.play(); + } + }, 5000), 5000); } }); diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr index dc58d48d..a8f98492 100644 --- a/src/invidious/views/watch.ecr +++ b/src/invidious/views/watch.ecr @@ -141,7 +141,7 @@ </div> </div> </div> - <% if preferences && preferences.related_videos || plid %> + <% if !preferences || preferences && preferences.related_videos || plid %> <div class="pure-u-1 pure-u-md-1-5"> <% if plid %> <div id="playlist" class="h-box"> |
