summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAgustin Ferrari <agustinferrari@gmx.com>2019-02-01 20:15:34 -0300
committerAgustin Ferrari <agustinferrari@gmx.com>2019-02-01 20:15:34 -0300
commitc0e73e71c58f632f6bf83dbc8e6c6bbf8e3b233e (patch)
tree1f287780c7faa1e93c7eed8856cfb504e34aa7d9 /src
parentb0ba670c919e4d1f4613ebc8973a8a1065dc4292 (diff)
parentd5c9b7dfe8055e939c555c32d106f02c7f983120 (diff)
downloadinvidious-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.cr22
-rw-r--r--src/invidious/users.cr18
-rw-r--r--src/invidious/videos.cr20
-rw-r--r--src/invidious/views/components/player.ecr48
-rw-r--r--src/invidious/views/watch.ecr2
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">