Compare commits

..

5 Commits

Author SHA1 Message Date
Emilien
f3540d7e7f Clarify release notes for proxy header stripping 2026-02-07 21:05:48 +01:00
Émilien (perso)
0693f663cd fix comment about memory leaks
Co-authored-by: Fijxu <fijxu@nadeko.net>
2026-02-07 21:04:07 +01:00
Émilien (perso)
35ee713cd8 fix comment about pr #5566, #5338
Co-authored-by: Fijxu <fijxu@nadeko.net>
2026-02-07 21:03:34 +01:00
Emilien
e76e46ad67 Fix release notes for Crystal/OpenSSL 2026-02-07 21:01:52 +01:00
Emilien
e35531f181 Release v2.20260207.0 2026-02-07 20:07:50 +01:00
11 changed files with 20 additions and 24 deletions

View File

@@ -1,7 +1,5 @@
# CHANGELOG # CHANGELOG
## vX.Y.0 (future)
## v2.20260207.0 ## v2.20260207.0
### Wrap-up ### Wrap-up

View File

@@ -211,9 +211,9 @@ window.helpers = window.helpers || {
helpers.storage.remove(key); helpers.storage.remove(key);
} }
}, },
set: function (key, value) { set: function (key, value) {
let encoded_value = encodeURIComponent(JSON.stringify(value)) let encoded_value = encodeURIComponent(JSON.stringify(value))
localStorage.setItem(key, encoded_value); localStorage.setItem(key, encoded_value);
}, },
remove: function (key) { localStorage.removeItem(key); } remove: function (key) { localStorage.removeItem(key); }
}; };

View File

@@ -143,7 +143,7 @@ player.on('timeupdate', function () {
let base_url_yt_watch = elem_yt_watch.getAttribute('data-base-url'); let base_url_yt_watch = elem_yt_watch.getAttribute('data-base-url');
elem_yt_watch.href = addCurrentTimeToURL(base_url_yt_watch); elem_yt_watch.href = addCurrentTimeToURL(base_url_yt_watch);
} }
let elem_yt_embed = document.getElementById('link-yt-embed'); let elem_yt_embed = document.getElementById('link-yt-embed');
if (elem_yt_embed) { if (elem_yt_embed) {
let base_url_yt_embed = elem_yt_embed.getAttribute('data-base-url'); let base_url_yt_embed = elem_yt_embed.getAttribute('data-base-url');
@@ -160,18 +160,12 @@ player.on('timeupdate', function () {
let base_url_iv_embed = elem_iv_embed.getAttribute('data-base-url'); let base_url_iv_embed = elem_iv_embed.getAttribute('data-base-url');
elem_iv_embed.href = addCurrentTimeToURL(base_url_iv_embed, domain); elem_iv_embed.href = addCurrentTimeToURL(base_url_iv_embed, domain);
} }
let elem_iv_other = document.getElementById('link-iv-other'); let elem_iv_other = document.getElementById('link-iv-other');
if (elem_iv_other) { if (elem_iv_other) {
let base_url_iv_other = elem_iv_other.getAttribute('data-base-url'); let base_url_iv_other = elem_iv_other.getAttribute('data-base-url');
elem_iv_other.href = addCurrentTimeToURL(base_url_iv_other, domain); elem_iv_other.href = addCurrentTimeToURL(base_url_iv_other, domain);
} }
let elem_iv_listen = document.getElementById('link-iv-listen');
if (elem_iv_listen) {
let base_url_iv_listen = elem_iv_listen.getAttribute('data-base-url');
elem_iv_listen.href = addCurrentTimeToURL(base_url_iv_listen, domain);
}
}); });
@@ -634,7 +628,7 @@ function toggle_caption_window() {
player.textTrackSettings.setValues({ windowOpacity: options.windowOpacity[newIndex] }); player.textTrackSettings.setValues({ windowOpacity: options.windowOpacity[newIndex] });
update_captions(); update_captions();
} }
function toggle_caption_opacity() { function toggle_caption_opacity() {
const numOptions = options.textOpacity.length; const numOptions = options.textOpacity.length;
const textOpacity = player.textTrackSettings.getValues().textOpacity || '1'; const textOpacity = player.textTrackSettings.getValues().textOpacity || '1';
@@ -739,7 +733,7 @@ addEventListener('keydown', function (e) {
case '>': action = increase_playback_rate.bind(this, 1); break; case '>': action = increase_playback_rate.bind(this, 1); break;
case '<': action = increase_playback_rate.bind(this, -1); break; case '<': action = increase_playback_rate.bind(this, -1); break;
case '=': action = increase_caption_size.bind(this, 1); break; case '=': action = increase_caption_size.bind(this, 1); break;
case '-': action = increase_caption_size.bind(this, -1); break; case '-': action = increase_caption_size.bind(this, -1); break;

View File

@@ -53,7 +53,7 @@ db:
## ##
## When this setting is commented out, Invidious companion is not used. ## When this setting is commented out, Invidious companion is not used.
## Otherwise, Invidious will proxy the requests to Invidious companion. ## Otherwise, Invidious will proxy the requests to Invidious companion.
## ##
## Note: multiple URL can be configured. In this case, Invidious will ## Note: multiple URL can be configured. In this case, Invidious will
## randomly pick one every time video data needs to be retrieved. This ## randomly pick one every time video data needs to be retrieved. This
## URL is then kept in the video metadata cache to allow video playback ## URL is then kept in the video metadata cache to allow video playback
@@ -63,7 +63,7 @@ db:
## The parameter private_url is required for the internal communication ## The parameter private_url is required for the internal communication
## between Invidious companion and Invidious. ## between Invidious companion and Invidious.
## ##
## The optional parameter public_url is the public URL from which ## The optional parameter public_url is the public URL from which
## Invidious companion is listening to the requests from the user(s). ## Invidious companion is listening to the requests from the user(s).
## When this setting is commented out, Invidious proxy all requests to ## When this setting is commented out, Invidious proxy all requests to
## Invidious companion. Useful for simple setups. ## Invidious companion. Useful for simple setups.
@@ -232,7 +232,7 @@ https_only: false
## Configuration for using a HTTP proxy ## Configuration for using a HTTP proxy
## If unset, then no HTTP proxy will be used. ## If unset, then no HTTP proxy will be used.
## Proxy type supported: HTTP, HTTPS ## Proxy type supported: HTTP, HTTPS
## ##
## This is not used for loading the video streams from YouTube servers (circumvent YouTube restrictions) ## This is not used for loading the video streams from YouTube servers (circumvent YouTube restrictions)
## Please instead configure the proxy in Invidious companion: ## Please instead configure the proxy in Invidious companion:
## https://github.com/iv-org/invidious-companion/blob/master/config/config.example.toml ## https://github.com/iv-org/invidious-companion/blob/master/config/config.example.toml
@@ -885,7 +885,7 @@ default_user_preferences:
## Default: true ## Default: true
## ##
#vr_mode: true #vr_mode: true
## ##
## Save the playback position ## Save the playback position
## Allow to continue watching at the previous position when ## Allow to continue watching at the previous position when

View File

@@ -3,7 +3,7 @@
# Crystal linter # Crystal linter
# This is a modified version of the pre-commit hook from the crystal repo. https://github.com/crystal-lang/crystal/blob/master/scripts/git/pre-commit # This is a modified version of the pre-commit hook from the crystal repo. https://github.com/crystal-lang/crystal/blob/master/scripts/git/pre-commit
# Please refer to that if you'd like an version that doesn't automatically format staged files. # Please refer to that if you'd like an version that doesn't automatically format staged files.
changed_cr_files=$(git diff --cached --name-only --diff-filter=ACM | grep '\.cr$') changed_cr_files=$(git diff --cached --name-only --diff-filter=ACM | grep '\.cr$')
if [ ! -z "$changed_cr_files" ]; then if [ ! -z "$changed_cr_files" ]; then
if [ -x bin/crystal ]; then if [ -x bin/crystal ]; then

View File

@@ -1,5 +1,5 @@
name: invidious name: invidious
version: 2.20260207.0-dev version: 2.20260207.0
authors: authors:
- Invidious team <contact@invidious.io> - Invidious team <contact@invidious.io>

View File

@@ -48,7 +48,9 @@ FEATURE_FILTERS = {
SORT_FILTERS = { SORT_FILTERS = {
Invidious::Search::Filters::Sort::Relevance => "8AEB", Invidious::Search::Filters::Sort::Relevance => "8AEB",
Invidious::Search::Filters::Sort::Date => "CALwAQE%3D",
Invidious::Search::Filters::Sort::Views => "CAPwAQE%3D", Invidious::Search::Filters::Sort::Views => "CAPwAQE%3D",
Invidious::Search::Filters::Sort::Rating => "CAHwAQE%3D",
} }
Spectator.describe Invidious::Search::Filters do Spectator.describe Invidious::Search::Filters do

View File

@@ -57,6 +57,8 @@ module Invidious::Search
# Values correspond to { "1:varint": <X> } # Values correspond to { "1:varint": <X> }
enum Sort enum Sort
Relevance = 0 Relevance = 0
Rating = 1
Date = 2
Views = 3 Views = 3
end end

View File

@@ -25,7 +25,7 @@
audio_streams.each_with_index do |fmt, i| audio_streams.each_with_index do |fmt, i|
src_url = "/latest_version?id=#{video.id}&itag=#{fmt["itag"]}" src_url = "/latest_version?id=#{video.id}&itag=#{fmt["itag"]}"
src_url += "&local=true" if params.local src_url += "&local=true" if params.local
src_url = invidious_companion.public_url.to_s + src_url + src_url = invidious_companion.public_url.to_s + src_url +
"&check=#{invidious_companion_check_id}" if (invidious_companion) "&check=#{invidious_companion_check_id}" if (invidious_companion)
bitrate = fmt["bitrate"] bitrate = fmt["bitrate"]

View File

@@ -159,7 +159,7 @@
<% end %> <% end %>
@ <%= CURRENT_BRANCH %> @ <%= CURRENT_BRANCH %>
<% if CURRENT_TAG != "" %> <% if CURRENT_TAG != "" %>
( (
<% if CONFIG.modified_source_code_url %> <% if CONFIG.modified_source_code_url %>
<a href="<%= CONFIG.modified_source_code_url %>/releases/tag/<%= CURRENT_TAG %>"><%= CURRENT_TAG %></a> <a href="<%= CONFIG.modified_source_code_url %>/releases/tag/<%= CURRENT_TAG %>"><%= CURRENT_TAG %></a>
<% else %> <% else %>

View File

@@ -79,11 +79,11 @@ we're going to need to do it here in order to allow for translations.
<h1> <h1>
<%= title %> <%= title %>
<% if params.listen %> <% if params.listen %>
<a title="<%=translate(locale, "Video mode")%>" id="link-iv-listen" data-base-url="/watch?<%= env.params.query %>&listen=0" href="/watch?<%= env.params.query %>&listen=0"> <a title="<%=translate(locale, "Video mode")%>" href="/watch?<%= env.params.query %>&listen=0">
<i class="icon ion-ios-videocam"></i> <i class="icon ion-ios-videocam"></i>
</a> </a>
<% else %> <% else %>
<a title="<%=translate(locale, "Audio mode")%>" id="link-iv-listen" data-base-url="/watch?<%= env.params.query %>&listen=1" href="/watch?<%= env.params.query %>&listen=1"> <a title="<%=translate(locale, "Audio mode")%>" href="/watch?<%= env.params.query %>&listen=1">
<i class="icon ion-md-headset"></i> <i class="icon ion-md-headset"></i>
</a> </a>
<% end %> <% end %>