diff options
| -rw-r--r-- | .github/workflows/ci.yml | 2 | ||||
| -rw-r--r-- | .github/workflows/container-release.yml | 2 | ||||
| -rw-r--r-- | README.md | 23 | ||||
| -rw-r--r-- | docker/Dockerfile | 2 | ||||
| -rw-r--r-- | locales/ar.json | 3 | ||||
| -rw-r--r-- | locales/hr.json | 5 | ||||
| -rw-r--r-- | locales/id.json | 54 | ||||
| -rw-r--r-- | locales/ja.json | 3 | ||||
| -rw-r--r-- | locales/tr.json | 2 | ||||
| -rw-r--r-- | src/invidious/routes/misc.cr | 5 | ||||
| -rw-r--r-- | src/invidious/views/channel.ecr | 6 | ||||
| -rw-r--r-- | src/invidious/views/community.ecr | 6 | ||||
| -rw-r--r-- | src/invidious/views/components/item.ecr | 31 | ||||
| -rw-r--r-- | src/invidious/views/components/video-context-buttons.ecr | 21 | ||||
| -rw-r--r-- | src/invidious/views/playlist.ecr | 13 | ||||
| -rw-r--r-- | src/invidious/views/playlists.ecr | 6 | ||||
| -rw-r--r-- | src/invidious/views/watch.ecr | 8 | ||||
| -rw-r--r-- | src/invidious/yt_backend/connection_pool.cr | 2 |
18 files changed, 104 insertions, 90 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index adde39c9..db0987cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,7 +40,7 @@ jobs: crystal: - 1.0.0 - 1.1.1 - - 1.2.1 + - 1.2.2 include: - crystal: nightly stable: false diff --git a/.github/workflows/container-release.yml b/.github/workflows/container-release.yml index 77b92c6f..36fb566e 100644 --- a/.github/workflows/container-release.yml +++ b/.github/workflows/container-release.yml @@ -27,7 +27,7 @@ jobs: - name: Install Crystal uses: oprypin/install-crystal@v1.2.4 with: - crystal: 1.1.1 + crystal: 1.2.2 - name: Run lint run: | @@ -8,6 +8,9 @@ <a href="https://github.com/iv-org/invidious/actions"> <img alt="Build Status" src="https://github.com/iv-org/invidious/workflows/Invidious%20CI/badge.svg"> </a> + <a href="https://github.com/iv-org/invidious/commits/master"> + <img alt="GitHub commits" src="https://img.shields.io/github/commit-activity/y/iv-org/invidious?color=red&label=commits"> + </a> <a href="https://github.com/iv-org/invidious/issues"> <img alt="GitHub issues" src="https://img.shields.io/github/issues/iv-org/invidious?color=important"> </a> @@ -17,19 +20,22 @@ <a href="https://hosted.weblate.org/engage/invidious/"> <img alt="Translation Status" src="https://hosted.weblate.org/widgets/invidious/-/translations/svg-badge.svg"> </a> + <a href="https://github.com/humanetech-community/awesome-humane-tech"> <img alt="Awesome Humane Tech" src="https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true"> </a> <h3>An open source alternative front-end to YouTube</h3> + <a href="https://invidious.io/">Website</a> + • <a href="https://instances.invidious.io/">Instances list</a> • - <a href="#documentation">Documentation</a> + <a href="https://docs.invidious.io/">Documentation</a> • <a href="#contribute">Contribute</a> • - <a href="#donate">Donate</a> + <a href="https://invidious.io/donate/">Donate</a> <h5>Chat with us:</h5> <a href="https://matrix.to/#/#invidious:matrix.org"> @@ -133,18 +139,7 @@ Weblate also allows you to log-in with major SSO providers like Github, Gitlab, - [CloudTube](https://sr.ht/~cadence/tube/): A JavaScript-rich alternate YouTube player. - [PeerTubeify](https://gitlab.com/Cha_deL/peertubeify): On YouTube, displays a link to the same video on PeerTube, if it exists. - [MusicPiped](https://github.com/deep-gaurav/MusicPiped): A material design music player that streams music from YouTube. -- [HoloPlay](https://github.com/stephane-r/HoloPlay): Funny Android application connecting on Invidious API's with search, playlists and favoris. - - -## Donate - -Bitcoin (BTC): [bc1qfhe7rq3lqzuayzjxzyt9waz9ytrs09kla3tsgr](bitcoin:bc1qfhe7rq3lqzuayzjxzyt9waz9ytrs09kla3tsgr) - -Monero (XMR): [41nMCtek197boJtiUvGnTFYMatrLEpnpkQDmUECqx5Es2uX3sTKKWVhSL76suXsG3LXqkEJBrCZBgPTwJrDp1FrZJfycGPR](monero:41nMCtek197boJtiUvGnTFYMatrLEpnpkQDmUECqx5Es2uX3sTKKWVhSL76suXsG3LXqkEJBrCZBgPTwJrDp1FrZJfycGPR) - -Ethereum (ETH): [0xD1F7E3Bfb19Ee5a52baED396Ad34717aF18d995B](ethereum:0xD1F7E3Bfb19Ee5a52baED396Ad34717aF18d995B) - -Litecoin (LTC): [ltc1q8787aq2xrseq5yx52axx8c4fqks88zj5vr0zx9](litecoin:ltc1q8787aq2xrseq5yx52axx8c4fqks88zj5vr0zx9) +- [HoloPlay](https://github.com/stephane-r/HoloPlay): Funny Android application connecting on Invidious API's with search, playlists and favorites. ## Liability diff --git a/docker/Dockerfile b/docker/Dockerfile index 21d4269c..5f1c0a11 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM crystallang/crystal:1.2.1-alpine AS builder +FROM crystallang/crystal:1.2.2-alpine AS builder RUN apk add --no-cache sqlite-static yaml-static ARG release diff --git a/locales/ar.json b/locales/ar.json index 15cf89bf..f2d457b6 100644 --- a/locales/ar.json +++ b/locales/ar.json @@ -432,5 +432,6 @@ "adminprefs_modified_source_code_url_label": "URL إلى مستودع التعليمات البرمجية المصدرية المعدلة", "footer_documentation": "التوثيق", "footer_donate_page": "تبرّع", - "preferences_region_label": "بلد المحتوى:. " + "preferences_region_label": "بلد المحتوى:. ", + "preferences_quality_dash_label": "جودة الفيديو المفضلة dash: " } diff --git a/locales/hr.json b/locales/hr.json index 6b8c718c..9b5f9250 100644 --- a/locales/hr.json +++ b/locales/hr.json @@ -68,7 +68,7 @@ "preferences_listen_label": "Standardno slušaj: ", "preferences_local_label": "Koristi posrednika videa: ", "preferences_speed_label": "Standardna brzina: ", - "preferences_quality_label": "Primarna kvaliteta videa: ", + "preferences_quality_label": "Preferirana kvaliteta videa: ", "preferences_volume_label": "Glasnoća playera: ", "preferences_comments_label": "Standardni komentari: ", "youtube": "YouTube", @@ -432,5 +432,6 @@ "footer_modfied_source_code": "Izmijenjeni izvorni kod", "footer_documentation": "Dokumentacija", "footer_original_source_code": "Izvoran izvorni kod", - "preferences_region_label": "Zemlja sadržaja: " + "preferences_region_label": "Zemlja sadržaja: ", + "preferences_quality_dash_label": "Preferirana kvaliteta dash-videa: " } diff --git a/locales/id.json b/locales/id.json index 07910143..ca4c1e0f 100644 --- a/locales/id.json +++ b/locales/id.json @@ -12,9 +12,9 @@ "": "`x` daftar putar" }, "LIVE": "SIARAN LANGSUNG", - "Shared `x` ago": "Dibagikan`x` lalu", + "Shared `x` ago": "Dibagikan `x` yang lalu", "Unsubscribe": "Batal Langganan", - "Subscribe": "Langganan", + "Subscribe": "Berangganan", "View channel on YouTube": "Lihat kanal di YouTube", "View playlist on YouTube": "Lihat daftar putar di YouTube", "newest": "terbaru", @@ -44,11 +44,11 @@ "Export data as JSON": "Ekspor data sebagai JSON", "Delete account?": "Hapus akun?", "History": "Riwayat", - "An alternative front-end to YouTube": "Sebuah alternatif front-end untuk YouTube", + "An alternative front-end to YouTube": "Sebuah alternatif layar depan untuk YouTube", "JavaScript license information": "Informasi lisensi JavaScript", "source": "sumber", "Log in": "Masuk", - "Log in/register": "Daftar", + "Log in/register": "Masuk/Daftar", "Log in with Google": "Masuk dengan Google", "User ID": "ID Pengguna", "Password": "Kata Sandi", @@ -62,21 +62,21 @@ "Preferences": "Preferensi", "preferences_category_player": "Preferensi pemutar", "preferences_video_loop_label": "Selalu ulangi: ", - "preferences_autoplay_label": "Putar-Otomatis: ", - "preferences_continue_label": "Putar selanjutnya secara default: ", - "preferences_continue_autoplay_label": "Otomatis-Putar video berikutnya: ", - "preferences_listen_label": "Dengarkan secara default: ", - "preferences_local_label": "Video Proksi: ", - "preferences_speed_label": "Kecepatan default: ", + "preferences_autoplay_label": "Putar Otomatis: ", + "preferences_continue_label": "Putar selanjutnya secara baku: ", + "preferences_continue_autoplay_label": "Putar otomatis video berikutnya: ", + "preferences_listen_label": "Dengarkan secara baku: ", + "preferences_local_label": "Proksi video: ", + "preferences_speed_label": "Kecepatan baku: ", "preferences_quality_label": "Kualitas video yang disukai: ", "preferences_volume_label": "Volume pemutar: ", - "preferences_comments_label": "Komentar default: ", + "preferences_comments_label": "Komentar baku: ", "youtube": "YouTube", "reddit": "Reddit", - "preferences_captions_label": "Subtitel default: ", - "Fallback captions: ": "Subtitel fallback: ", + "preferences_captions_label": "Takarir baku: ", + "Fallback captions: ": "Takarir cadangan: ", "preferences_related_videos_label": "Tampilkan video terkait: ", - "preferences_annotations_label": "Tampilkan anotasi secara default: ", + "preferences_annotations_label": "Tampilkan anotasi secara baku: ", "preferences_extend_desc_label": "Perluas deskripsi video secara otomatis: ", "preferences_vr_mode_label": "Video interaktif 360°: ", "preferences_category_visual": "Preferensi visual", @@ -89,16 +89,16 @@ "preferences_category_misc": "Preferensi lainnya", "preferences_automatic_instance_redirect_label": "Pengalihan peladen otomatis (balik kembali ke redirect.invidious.io): ", "preferences_category_subscription": "Preferensi langganan", - "preferences_annotations_subscribed_label": "Tampilkan anotasi secara default untuk kanal langganan: ", + "preferences_annotations_subscribed_label": "Tampilkan anotasi secara baku untuk kanal yang dilanggan? ", "Redirect homepage to feed: ": "Arahkan kembali laman beranda ke umpan: ", "preferences_max_results_label": "Jumlah video ditampilkan di umpan: ", "preferences_sort_label": "Urutkan video berdasarkan: ", "published": "dipublikasi", - "published - reverse": "dipublikasi - sebaliknya", + "published - reverse": "dipublikasi - terbalik", "alphabetically": "menurut abjad", - "alphabetically - reverse": "menurut abjad - sebaliknya", + "alphabetically - reverse": "menurut abjad - terbalik", "channel name": "nama kanal", - "channel name - reverse": "nama kanal - sebaliknya", + "channel name - reverse": "nama kanal - terbalik", "Only show latest video from channel: ": "Hanya tampilkan video terbaru dari kanal: ", "Only show latest unwatched video from channel: ": "Hanya tampilkan video belum ditonton terbaru dari kanal: ", "preferences_unseen_only_label": "Hanya tampilkan belum ditonton: ", @@ -106,7 +106,7 @@ "Enable web notifications": "Aktifkan pemberitahuan web", "`x` uploaded a video": "`x` mengunggah video", "`x` is live": "`x` sedang siaran langsung", - "preferences_category_data": "Preferensi Data", + "preferences_category_data": "Preferensi data", "Clear watch history": "Bersihkan riwayat tontonan", "Import/export data": "Impor/Ekspor data", "Change password": "Ganti kata sandi", @@ -115,13 +115,13 @@ "Watch history": "Riwayat tontonan", "Delete account": "Hapus akun", "preferences_category_admin": "Preferensi administrator", - "preferences_default_home_label": "Laman beranda default: ", + "preferences_default_home_label": "Laman beranda baku: ", "preferences_feed_menu_label": "Menu umpan: ", "preferences_show_nick_label": "Tampilkan nama panggilan di atas: ", "Top enabled: ": "Teratas diaktifkan: ", "CAPTCHA enabled: ": "CAPTCHA diaktifkan: ", "Login enabled: ": "Masuk diaktifkan: ", - "Registration enabled: ": "Registrasi diaktifkan: ", + "Registration enabled: ": "Pendaftaran diaktifkan: ", "Report statistics: ": "Laporan statistik: ", "Save preferences": "Simpan preferensi", "Subscription manager": "Pengatur langganan", @@ -161,7 +161,7 @@ "Title": "Judul", "Playlist privacy": "Privasi daftar putar", "Editing playlist `x`": "Menyunting daftar putar `x`", - "Show more": "Tampilkan lainnya", + "Show more": "Tampilkan lebih banyak", "Show less": "Tampilkan lebih sedikit", "Watch on YouTube": "Tonton di YouTube", "Switch Invidious Instance": "Ganti peladen Invidious", @@ -175,9 +175,9 @@ "Engagement: ": "Keterlibatan: ", "Whitelisted regions: ": "Wilayah daftar-putih: ", "Blacklisted regions: ": "Wilayah daftar-hitam: ", - "Shared `x`": "Berbagi`x`", + "Shared `x`": "Berbagi `x`", "`x` views": { - "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tampilan.([^.,0-9]|^)1([^.,0-9]|$)", + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` tampilan", "": "`x` tampilan" }, "Premieres in `x`": "Tayang dalam `x`", @@ -186,7 +186,7 @@ "View YouTube comments": "Lihat komentar YouTube", "View more comments on Reddit": "Lihat lebih banyak komentar di Reddit", "View `x` comments": { - "([^.,0-9]|^)1([^.,0-9]|$)": "Lihat`x` komentar.([^.,0-9]|^)1([^.,0-9]|$)", + "([^.,0-9]|^)1([^.,0-9]|$)": "Lihat`x` komentar", "": "Lihat`x` komentar" }, "View Reddit comments": "Lihat komentar Reddit", @@ -368,7 +368,7 @@ "([^.,0-9]|^)1([^.,0-9]|$)": "`x` detik", "": "`x` detik" }, - "Fallback comments: ": "Komentar mundur: ", + "Fallback comments: ": "Komentar alternatif: ", "Popular": "Populer", "Search": "Cari", "Top": "Teratas", @@ -376,7 +376,7 @@ "Rating: ": "Peringkat: ", "preferences_locale_label": "Bahasa: ", "View as playlist": "Tampilkan sebagai daftar putar", - "Default": "Asali", + "Default": "Baku", "Music": "Musik", "Gaming": "Permainan", "News": "Berita", diff --git a/locales/ja.json b/locales/ja.json index ea334e98..c7764d33 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -432,5 +432,6 @@ "adminprefs_modified_source_code_url_label": "編集したソースコードのレポジトリーURL", "long": "20 分以上", "preferences_region_label": "地域: ", - "footer_donate_page": "寄付する" + "footer_donate_page": "寄付する", + "preferences_quality_dash_label": "優先するDash画質 : " } diff --git a/locales/tr.json b/locales/tr.json index 3bb9405d..6e753bfc 100644 --- a/locales/tr.json +++ b/locales/tr.json @@ -256,7 +256,7 @@ "Croatian": "Hırvatça", "Czech": "Çekçe", "Danish": "Danca", - "Dutch": "Flemenkçe", + "Dutch": "Felemenkçe", "Esperanto": "Esperanto", "Estonian": "Estonca", "Filipino": "Filipince", diff --git a/src/invidious/routes/misc.cr b/src/invidious/routes/misc.cr index 0e6356d0..3ea4c272 100644 --- a/src/invidious/routes/misc.cr +++ b/src/invidious/routes/misc.cr @@ -40,11 +40,6 @@ module Invidious::Routes::Misc def self.cross_instance_redirect(env) referer = get_referer(env) - - if !env.get("preferences").as(Preferences).automatic_instance_redirect - return env.redirect("https://redirect.invidious.io#{referer}") - end - instance_url = fetch_random_instance env.redirect "https://#{instance_url}#{referer}" end diff --git a/src/invidious/views/channel.ecr b/src/invidious/views/channel.ecr index 7f797e37..40b553a9 100644 --- a/src/invidious/views/channel.ecr +++ b/src/invidious/views/channel.ecr @@ -45,7 +45,11 @@ <div class="pure-u-1-3"> <a href="https://www.youtube.com/channel/<%= ucid %>"><%= translate(locale, "View channel on YouTube") %></a> <div class="pure-u-1 pure-md-1-3"> - <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a> + <% if env.get("preferences").as(Preferences).automatic_instance_redirect%> + <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a> + <% else %> + <a href="https://redirect.invidious.io<%= env.request.path %>"><%= translate(locale, "Switch Invidious Instance") %></a> + <% end %> </div> <% if !channel.auto_generated %> <div class="pure-u-1 pure-md-1-3"> diff --git a/src/invidious/views/community.ecr b/src/invidious/views/community.ecr index 15d8ed1e..f0add06b 100644 --- a/src/invidious/views/community.ecr +++ b/src/invidious/views/community.ecr @@ -44,7 +44,11 @@ <div class="pure-u-1-3"> <a href="https://www.youtube.com/channel/<%= channel.ucid %>/community"><%= translate(locale, "View channel on YouTube") %></a> <div class="pure-u-1 pure-md-1-3"> - <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a> + <% if env.get("preferences").as(Preferences).automatic_instance_redirect%> + <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a> + <% else %> + <a href="https://redirect.invidious.io<%= env.request.resource %>"><%= translate(locale, "Switch Invidious Instance") %></a> + <% end %> </div> <% if !channel.auto_generated %> <div class="pure-u-1 pure-md-1-3"> diff --git a/src/invidious/views/components/item.ecr b/src/invidious/views/components/item.ecr index 5788bf51..a58571aa 100644 --- a/src/invidious/views/components/item.ecr +++ b/src/invidious/views/components/item.ecr @@ -79,19 +79,8 @@ <div class="flex-left"><a href="/channel/<%= item.ucid %>"> <p class="channel-name" dir="auto"><%= HTML.escape(item.author) %></p> </a></div> - <div class="flex-right"> - <div class="icon-buttons"> - <a title="<%=translate(locale, "Watch on YouTube")%>" href="https://www.youtube.com/watch?v=<%= item.id %>&list=<%= item.plid %>"> - <i class="icon ion-logo-youtube"></i> - </a> - <a title="<%=translate(locale, "Audio mode")%>" href="/watch?v=<%= item.id %>&list=<%= item.plid %>&listen=1"> - <i class="icon ion-md-headset"></i> - </a> - <a title="<%=translate(locale, "Switch Invidious Instance")%>" href="/redirect?referer=<%=URI.encode_www_form("watch?v=#{item.id}&list=#{item.plid}")%>"> - <i class="icon ion-md-jet"></i> - </a> - </div> - </div> + <% endpoint_params = "?v=#{item.id}&list=#{item.plid}" %> + <%= rendered "components/video-context-buttons" %> </div> <div class="video-card-row flexible"> @@ -155,19 +144,9 @@ <div class="flex-left"><a href="/channel/<%= item.ucid %>"> <p class="channel-name" dir="auto"><%= HTML.escape(item.author) %></p> </a></div> - <div class="flex-right"> - <div class="icon-buttons"> - <a title="<%=translate(locale, "Watch on YouTube")%>" href="https://www.youtube.com/watch?v=<%= item.id %>"> - <i class="icon ion-logo-youtube"></i> - </a> - <a title="<%=translate(locale, "Audio mode")%>" href="/watch?v=<%= item.id %>&listen=1"> - <i class="icon ion-md-headset"></i> - </a> - <a title="<%=translate(locale, "Switch Invidious Instance")%>" href="/redirect?referer=<%=URI.encode_www_form("watch?v=#{item.id}")%>"> - <i class="icon ion-md-jet"></i> - </a> - </div> - </div> + + <% endpoint_params = "?v=#{item.id}" %> + <%= rendered "components/video-context-buttons" %> </div> <div class="video-card-row flexible"> diff --git a/src/invidious/views/components/video-context-buttons.ecr b/src/invidious/views/components/video-context-buttons.ecr new file mode 100644 index 00000000..daa107f0 --- /dev/null +++ b/src/invidious/views/components/video-context-buttons.ecr @@ -0,0 +1,21 @@ +<div class="flex-right"> + <div class="icon-buttons"> + <a title="<%=translate(locale, "Watch on YouTube")%>" href="https://www.youtube.com/watch<%=endpoint_params%>"> + <i class="icon ion-logo-youtube"></i> + </a> + <a title="<%=translate(locale, "Audio mode")%>" href="/watch<%=endpoint_params%>&listen=1"> + <i class="icon ion-md-headset"></i> + </a> + + <% if env.get("preferences").as(Preferences).automatic_instance_redirect%> + <a title="<%=translate(locale, "Switch Invidious Instance")%>" href="/redirect?referer=%2Fwatch<%=URI.encode_www_form(endpoint_params)%>"> + <i class="icon ion-md-jet"></i> + </a> + <% else %> + <a title="<%=translate(locale, "Switch Invidious Instance")%>" href="https://redirect.invidious.io/watch<%=endpoint_params%>"> + <i class="icon ion-md-jet"></i> + </a> + <% end %> + + </div> +</div>
\ No newline at end of file diff --git a/src/invidious/views/playlist.ecr b/src/invidious/views/playlist.ecr index 12f93a72..d0518de7 100644 --- a/src/invidious/views/playlist.ecr +++ b/src/invidious/views/playlist.ecr @@ -41,9 +41,16 @@ <%= translate(locale, "View playlist on YouTube") %> </a> <span> | </span> - <a href="/redirect?referer=<%= env.get?("current_page") %>"> - <%= translate(locale, "Switch Invidious Instance") %> - </a> + + <% if env.get("preferences").as(Preferences).automatic_instance_redirect%> + <a href="/redirect?referer=<%= env.get?("current_page") %>"> + <%= translate(locale, "Switch Invidious Instance") %> + </a> + <% else %> + <a href="https://redirect.invidious.io<%= env.request.resource %>"> + <%= translate(locale, "Switch Invidious Instance") %> + </a> + <% end %> </div> <% end %> </div> diff --git a/src/invidious/views/playlists.ecr b/src/invidious/views/playlists.ecr index 1245256f..12dba088 100644 --- a/src/invidious/views/playlists.ecr +++ b/src/invidious/views/playlists.ecr @@ -47,7 +47,11 @@ </div> <div class="pure-u-1 pure-md-1-3"> - <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a> + <% if env.get("preferences").as(Preferences).automatic_instance_redirect%> + <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a> + <% else %> + <a href="https://redirect.invidious.io<%= env.request.resource %>"><%= translate(locale, "Switch Invidious Instance") %></a> + <% end %> </div> <div class="pure-u-1 pure-md-1-3"> diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr index cad36e73..9cf00393 100644 --- a/src/invidious/views/watch.ecr +++ b/src/invidious/views/watch.ecr @@ -11,7 +11,7 @@ <meta property="og:url" content="<%= HOST_URL %>/watch?v=<%= video.id %>"> <meta property="og:title" content="<%= title %>"> <meta property="og:image" content="/vi/<%= video.id %>/maxres.jpg"> -<meta property="og:description" content="<%= video.short_description %>"> +<meta property="og:description" content="<%= HTML.escape(video.short_description) %>"> <meta property="og:type" content="video.other"> <meta property="og:video:url" content="<%= HOST_URL %>/embed/<%= video.id %>"> <meta property="og:video:secure_url" content="<%= HOST_URL %>/embed/<%= video.id %>"> @@ -22,7 +22,7 @@ <meta name="twitter:site" content="@omarroth1"> <meta name="twitter:url" content="<%= HOST_URL %>/watch?v=<%= video.id %>"> <meta name="twitter:title" content="<%= title %>"> -<meta name="twitter:description" content="<%= video.short_description %>"> +<meta name="twitter:description" content="<%= HTML.escape(video.short_description) %>"> <meta name="twitter:image" content="<%= HOST_URL %>/vi/<%= video.id %>/maxres.jpg"> <meta name="twitter:player" content="<%= HOST_URL %>/embed/<%= video.id %>"> <meta name="twitter:player:width" content="1280"> @@ -116,7 +116,11 @@ we're going to need to do it here in order to allow for translations. (<a href="https://www.youtube.com/embed/<%= video.id %>"><%= translate(locale, "Embed") %></a>) </span> <p id="watch-on-another-invidious-instance"> + <% if env.get("preferences").as(Preferences).automatic_instance_redirect%> <a href="/redirect?referer=<%= env.get?("current_page") %>"><%= translate(locale, "Switch Invidious Instance") %></a> + <% else %> + <a href="https://redirect.invidious.io<%= env.request.resource %>"><%= translate(locale, "Switch Invidious Instance") %></a> + <% end %> </p> <p id="embed-link"> <a href="<%= embed_link %>"><%= translate(locale, "Embed Link") %></a> diff --git a/src/invidious/yt_backend/connection_pool.cr b/src/invidious/yt_backend/connection_pool.cr index fe7a572d..3feb9233 100644 --- a/src/invidious/yt_backend/connection_pool.cr +++ b/src/invidious/yt_backend/connection_pool.cr @@ -1,5 +1,3 @@ -require "lsquic" - {% unless flag?(:disable_quic) %} require "lsquic" |
