diff --git a/.ameba.yml b/.ameba.yml index 36d7c48f..efca983e 100644 --- a/.ameba.yml +++ b/.ameba.yml @@ -20,6 +20,10 @@ Lint/ShadowingOuterLocalVar: Excluded: - src/invidious/helpers/tokens.cr +# CI has a separate job to check for typos +Lint/Typos: + Enabled: false + Lint/NotNil: Enabled: false diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9d6a930a..3efdaf7b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -165,3 +165,12 @@ jobs: - name: Run Ameba linter run: bin/ameba + + lint_spell: + name: Spell Check with Typos + runs-on: ubuntu-latest + steps: + - name: Checkout Actions Repository + uses: actions/checkout@v4 + - name: Spell Check Repo + uses: crate-ci/typos@v1.33.1 diff --git a/.typos.toml b/.typos.toml new file mode 100644 index 00000000..a6c8271e --- /dev/null +++ b/.typos.toml @@ -0,0 +1,30 @@ +[default] + extend-ignore-re = [ + # Exclude various hard-coded YouTube IDs + "\\b[0-9A-z+/\\-_]{100,}((=|%3D){1,2})?\\b", + "\\b4qm.*(%3D{1,2})?\\b", + "UC[A-z0-9\\-]*\\b", + "EgI[A-z0-9\\-]{7}(%3D{1,2})", + + # Ignore gsub regex + "gsub\\(?/.*/,?", + + # TEST_IDs constant def + "TEST_IDS *= *\\{.*\\}", + + # Ignore two-letter region strings + "(\\b|\")[a-zA-Z]{2}(\\b|\")," + ] + +[default.extend-identifiers] + clen = "clen" + +[files] + extend-exclude = [ + "/assets/js/videojs-youtube-annotations.min.js", + "/assets/videojs/**/*", + "/assets/fonts/ionicons.svg", + "/mocks/**/*.json", + "locales/*.json", + "CHANGELOG_legacy.md", + ] diff --git a/CHANGELOG.md b/CHANGELOG.md index 56fbe7f3..849b89dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -149,7 +149,7 @@ An HTTP proxy can be configured directly in Invidious, if needed. \ * The instance list is downloaded in the background to improve redirection speed * New `colorize_logs` option makes each log level a different color -#### For developpers +#### For developers * `/api/v1/channels/{id}/shorts` now supports the `sort-by` parameter with the following values: `newest`, `oldest` and `popular` @@ -301,7 +301,7 @@ Allow manual trigger of release-container build ([#4877], thanks @syeopite) [inv_sig_helper]: https://github.com/iv-org/inv_sig_helper -#### For developpers +#### For developers * The versions of Crystal that we test in CI/CD are now: `1.9.2`, `1.10.1`, `1.11.2`, `1.12.1`. Please note that due to a bug in the `libxml` bindings (See [#4256]), versions prior to `1.10.0` @@ -328,7 +328,7 @@ Allow manual trigger of release-container build ([#4877], thanks @syeopite) * Watch page: the items in the "add to playlist" drop down are now sorted alphabetically * Videos: the "genre" URL is now always pointing to a valid webpage * Playlists: Fixed `Could not parse N episodes` error on podcast playlists -* All external links should now have the [`rel`] attibute set to `noreferrer noopener` for +* All external links should now have the [`rel`] attribute set to `noreferrer noopener` for increased privacy. * Preferences: Fixed the admin-only "modified source code" input being ignored * Watch/channel pages: use the full image URL in `og:image` and `twitter:image` meta tags @@ -338,7 +338,7 @@ Allow manual trigger of release-container build ([#4877], thanks @syeopite) #### API * fixed the `local` parameter not applying to `formatStreams` on `/api/v1/videos/{id}` -* fixed an `Index out of bounds` error hapenning when a playlist had no videos +* fixed an `Index out of bounds` error happening when a playlist had no videos * fixed duplicated query parameters in proxied video URLs * Return actual video height/width/fps rather than hard coded values * Fixed the `/api/v1/popular` endpoint not returning a proper error code/message when the @@ -357,7 +357,7 @@ Allow manual trigger of release-container build ([#4877], thanks @syeopite) * Channel: Render age restricted channels ([#4295], thanks @ChunkyProgrammer) * Ameba: Miscellaneous fixes ([#4807], thanks @syeopite) * API: Proxy formatStreams URLs too ([#4859], thanks @colinleroy) -* UI: Add search button to search bar ([#4706], thanks @thansk) +* UI: Add search button to search bar ([#4706], thanks @thanks) * Add ability to set po_token and visitordata ID ([#4789], thanks @unixfox) * Add support for an external signature server ([#4772], by @SamantazFox) * Ameba: Fix Naming/VariableNames ([#4790], thanks @syeopite) diff --git a/assets/css/default.css b/assets/css/default.css index 01d4b736..752dd570 100644 --- a/assets/css/default.css +++ b/assets/css/default.css @@ -739,7 +739,7 @@ body.dark-theme { /* - * Miscellanous + * Miscellaneous */ diff --git a/config/config.example.yml b/config/config.example.yml index 8d3e6212..1f34ede1 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -259,7 +259,7 @@ https_only: false # use_innertube_for_captions: false ## -## Send Google session informations. This is useful when Invidious is blocked +## Send Google session information. This is useful when Invidious is blocked ## by the message "This helps protect our community." ## See https://github.com/iv-org/invidious/issues/4734. ## @@ -319,7 +319,7 @@ https_only: false #popular_enabled: true ## -## Enable/Disable statstics (available at /api/v1/stats). +## Enable/Disable statistics (available at /api/v1/stats). ## The following data is available: ## - Software name ("invidious") and version+branch (same data as ## displayed in the footer, e.g: "2021.05.13-75e5b49" / "master") @@ -865,7 +865,7 @@ default_user_preferences: ## ## Default dash video quality. ## - ## Note: this setting only takes effet if the + ## Note: this setting only takes effect if the ## 'quality' parameter is set to "dash". ## ## Accepted values: diff --git a/locales/ar.json b/locales/ar.json index 94103c29..6f9d5536 100644 --- a/locales/ar.json +++ b/locales/ar.json @@ -354,7 +354,7 @@ "search_filters_duration_option_long": "طويل (> 20 دقيقة)", "footer_source_code": "الكود المصدر", "footer_original_source_code": "الكود المصدر الأصلي", - "footer_modfied_source_code": "الكود المصدر المعدل", + "footer_modified_source_code": "الكود المصدر المعدل", "adminprefs_modified_source_code_url_label": "URL إلى مستودع الكود المصدر المعدل", "footer_documentation": "التوثيق", "footer_donate_page": "تبرّع", diff --git a/locales/bg.json b/locales/bg.json index 5c99d98f..6836e975 100644 --- a/locales/bg.json +++ b/locales/bg.json @@ -331,7 +331,7 @@ "Music in this video": "Музика в това видео", "Hide replies": "Скрий отговорите", "Password cannot be longer than 55 characters": "Паролата не може да бъде по-дълга от 55 символа", - "footer_modfied_source_code": "Променен изходен код", + "footer_modified_source_code": "Променен изходен код", "Bosnian": "Босненски", "Deleted or invalid channel": "Изтрит или невалиден канал", "Popular": "Популярно", diff --git a/locales/ca.json b/locales/ca.json index 474d6a3c..da864c30 100644 --- a/locales/ca.json +++ b/locales/ca.json @@ -128,7 +128,7 @@ "user_saved_playlists": "`x` llistes de reproducció guardades", "adminprefs_modified_source_code_url_label": "URL al repositori de codi font modificat", "none": "cap", - "footer_modfied_source_code": "Codi font modificat", + "footer_modified_source_code": "Codi font modificat", "videoinfo_invidious_embed_link": "Incrusta l'enllaç", "download_subtitles": "Subtítols - `x` (.vtt)", "user_created_playlists": "`x`llistes de reproducció creades", diff --git a/locales/cs.json b/locales/cs.json index 41f3db5c..422ae8ff 100644 --- a/locales/cs.json +++ b/locales/cs.json @@ -394,7 +394,7 @@ "adminprefs_modified_source_code_url_label": "URL repozitáře s upraveným zdrojovým kódem", "Video unavailable": "Video není dostupné", "next_steps_error_message_go_to_youtube": "Jít na YouTube", - "footer_modfied_source_code": "Upravený zdrojový kód", + "footer_modified_source_code": "Upravený zdrojový kód", "none": "žádné", "videoinfo_invidious_embed_link": "Odkaz na vložení", "user_saved_playlists": "`x` uložených playlistů", diff --git a/locales/da.json b/locales/da.json index 9cbb446a..ca5ddb40 100644 --- a/locales/da.json +++ b/locales/da.json @@ -236,7 +236,7 @@ "%A %B %-d, %Y": "%A %B %-d, %Y", "footer_documentation": "Dokumentation", "Pashto": "Pashto", - "footer_modfied_source_code": "Modificeret Kildekode", + "footer_modified_source_code": "Modificeret Kildekode", "Released under the AGPLv3 on Github.": "Udgivet under AGPLv3 på GitHub.", "Tajik": "Tadsjikisk", "search_filters_date_option_month": "Denne måned", diff --git a/locales/de.json b/locales/de.json index e51d40b9..dc7f8e02 100644 --- a/locales/de.json +++ b/locales/de.json @@ -355,7 +355,7 @@ "footer_donate_page": "Spende", "search_filters_duration_option_long": "Lang (> 20 Minuten)", "footer_original_source_code": "Original Quellcode", - "footer_modfied_source_code": "Modifizierter Quellcode", + "footer_modified_source_code": "Modifizierter Quellcode", "footer_documentation": "Dokumentation", "footer_source_code": "Quellcode", "adminprefs_modified_source_code_url_label": "URL zum Repositorie des modifizierten Quellcodes", diff --git a/locales/el.json b/locales/el.json index e5a89a44..cca29d8a 100644 --- a/locales/el.json +++ b/locales/el.json @@ -398,7 +398,7 @@ "Released under the AGPLv3 on Github.": "Κυκλοφορεί υπό την AGPLv3 στο GitHub.", "search_filters_sort_label": "Ταξινόμηση κατά", "search_filters_type_option_movie": "Ταινία", - "footer_modfied_source_code": "Τροποποιημένος πηγαίος κώδικας", + "footer_modified_source_code": "Τροποποιημένος πηγαίος κώδικας", "search_filters_features_label": "Χαρακτηριστικά", "search_filters_features_option_four_k": "4K", "footer_documentation": "Τεκμηρίωση", diff --git a/locales/en-US.json b/locales/en-US.json index 3f42a509..23389b7f 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -466,7 +466,7 @@ "footer_documentation": "Documentation", "footer_source_code": "Source code", "footer_original_source_code": "Original source code", - "footer_modfied_source_code": "Modified source code", + "footer_modified_source_code": "Modified source code", "adminprefs_modified_source_code_url_label": "URL to modified source code repository", "none": "none", "videoinfo_started_streaming_x_ago": "Started streaming `x` ago", diff --git a/locales/eo.json b/locales/eo.json index 7276c890..c9a18a93 100644 --- a/locales/eo.json +++ b/locales/eo.json @@ -355,7 +355,7 @@ "footer_documentation": "Dokumentaro", "footer_source_code": "Fontkodo", "adminprefs_modified_source_code_url_label": "URL al modifita deponejo de fontkodo", - "footer_modfied_source_code": "Modifita Fontkodo", + "footer_modified_source_code": "Modifita Fontkodo", "footer_original_source_code": "Originala fontkodo", "footer_donate_page": "Donaci", "preferences_region_label": "Lando de la enhavo: ", diff --git a/locales/es.json b/locales/es.json index 46217943..9d9a4549 100644 --- a/locales/es.json +++ b/locales/es.json @@ -357,7 +357,7 @@ "footer_original_source_code": "Código fuente original", "adminprefs_modified_source_code_url_label": "Enlace al repositorio de código fuente modificado", "footer_source_code": "Código fuente", - "footer_modfied_source_code": "Código fuente modificado", + "footer_modified_source_code": "Código fuente modificado", "footer_donate_page": "Donar", "preferences_region_label": "País del contenido: ", "preferences_quality_dash_label": "Calidad de video DASH preferida: ", diff --git a/locales/fa.json b/locales/fa.json index 2326370d..d7aa3ce2 100644 --- a/locales/fa.json +++ b/locales/fa.json @@ -402,7 +402,7 @@ "search_filters_features_option_three_sixty": "360°", "footer_donate_page": "کمک مالی", "footer_source_code": "کد منبع", - "footer_modfied_source_code": "کد منبع ویرایش شده", + "footer_modified_source_code": "کد منبع ویرایش شده", "none": "هیچ‌کدام", "videoinfo_started_streaming_x_ago": "پخش جریانی `x` پیش آغاز شد", "videoinfo_watch_on_youTube": "تماشا در یوتیوب", diff --git a/locales/fi.json b/locales/fi.json index 13fef6de..957bf526 100644 --- a/locales/fi.json +++ b/locales/fi.json @@ -427,7 +427,7 @@ "search_filters_duration_option_long": "Pitkä (> 20 minuuttia)", "footer_documentation": "Dokumentaatio", "footer_original_source_code": "Alkuperäinen lähdekoodi", - "footer_modfied_source_code": "Muokattu lähdekoodi", + "footer_modified_source_code": "Muokattu lähdekoodi", "Japanese (auto-generated)": "japani (automaattisesti luotu)", "German (auto-generated)": "saksa (automaattisesti luotu)", "Portuguese (auto-generated)": "portugali (automaattisesti luotu)", diff --git a/locales/fr.json b/locales/fr.json index 49aa09df..3a24de12 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -412,7 +412,7 @@ "footer_source_code": "Code source", "preferences_region_label": "Pays du contenu : ", "footer_donate_page": "Faire un don", - "footer_modfied_source_code": "Code source modifié", + "footer_modified_source_code": "Code source modifié", "search_filters_duration_option_short": "Courte (< 4 minutes)", "search_filters_duration_option_long": "Longue (> 20 minutes)", "adminprefs_modified_source_code_url_label": "URL du dépôt du code source modifié", diff --git a/locales/hi.json b/locales/hi.json index 0a1c09dd..7dcc074b 100644 --- a/locales/hi.json +++ b/locales/hi.json @@ -440,7 +440,7 @@ "footer_documentation": "प्रलेख", "footer_source_code": "स्रोत कोड", "footer_original_source_code": "मूल स्रोत कोड", - "footer_modfied_source_code": "बदला गया स्रोत कोड", + "footer_modified_source_code": "बदला गया स्रोत कोड", "Current version: ": "वर्तमान संस्करण: ", "next_steps_error_message": "इसके बाद आपके ये आज़माने चाहिए: ", "next_steps_error_message_refresh": "साफ़ करें", diff --git a/locales/hr.json b/locales/hr.json index 6adbcdc3..78b61f31 100644 --- a/locales/hr.json +++ b/locales/hr.json @@ -355,7 +355,7 @@ "search_filters_duration_option_short": "Kratko (< 4 minute)", "search_filters_duration_option_long": "Dugo (> 20 minute)", "footer_source_code": "Izvorni kod", - "footer_modfied_source_code": "Prilagođen izvorni kod", + "footer_modified_source_code": "Prilagođen izvorni kod", "footer_documentation": "Dokumentacija", "footer_original_source_code": "Prvobitan izvorni kod", "preferences_region_label": "Zemlja sadržaja: ", diff --git a/locales/hu-HU.json b/locales/hu-HU.json index 8fbdd82f..dc5201c0 100644 --- a/locales/hu-HU.json +++ b/locales/hu-HU.json @@ -385,7 +385,7 @@ "next_steps_error_message_refresh": "Újratöltés", "footer_donate_page": "Adakozás", "footer_source_code": "Forráskód", - "footer_modfied_source_code": "Módosított forráskód", + "footer_modified_source_code": "Módosított forráskód", "adminprefs_modified_source_code_url_label": "A módosított forráskód repositoryjának URL-je:", "preferences_automatic_instance_redirect_label": "Váltáskor másik Invidious oldal automatikus betöltése (redirect.invidious.io töltődik, ha nem működne): ", "preferences_region_label": "Ország tartalmainak mutatása: ", diff --git a/locales/id.json b/locales/id.json index 4c6e8548..567a4253 100644 --- a/locales/id.json +++ b/locales/id.json @@ -372,7 +372,7 @@ "footer_original_source_code": "Kode sumber yang asli", "search_filters_duration_option_short": "Pendek (< 4 menit)", "search_filters_duration_option_long": "Panjang (> 20 menit)", - "footer_modfied_source_code": "Kode sumber yang dimodifikasi", + "footer_modified_source_code": "Kode sumber yang dimodifikasi", "footer_documentation": "Dokumentasi", "preferences_region_label": "Konten dari negara: ", "preferences_quality_dash_label": "Kualitas video DASH yang disukai: ", diff --git a/locales/is.json b/locales/is.json index 28cacf31..79a87ab4 100644 --- a/locales/is.json +++ b/locales/is.json @@ -451,7 +451,7 @@ "search_filters_sort_label": "Raða eftir", "search_filters_sort_option_relevance": "Samsvörun", "footer_donate_page": "Styrkja", - "footer_modfied_source_code": "Breyttur grunnkóði", + "footer_modified_source_code": "Breyttur grunnkóði", "crash_page_refresh": "reynt að endurlesa síðuna", "crash_page_search_issue": "leitað að fyrirliggjandi villum á GitHub", "none": "ekkert", diff --git a/locales/it.json b/locales/it.json index c7143ef6..b6cab3bc 100644 --- a/locales/it.json +++ b/locales/it.json @@ -405,7 +405,7 @@ "next_steps_error_message_go_to_youtube": "Andare su YouTube", "footer_documentation": "Documentazione", "footer_original_source_code": "Codice sorgente originale", - "footer_modfied_source_code": "Codice sorgente modificato", + "footer_modified_source_code": "Codice sorgente modificato", "none": "nessuno", "videoinfo_started_streaming_x_ago": "Ha iniziato a trasmettere `x` fa", "download_subtitles": "Sottotitoli - `x` (.vtt)", diff --git a/locales/ja.json b/locales/ja.json index c4b82486..f82408f2 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -370,7 +370,7 @@ "footer_documentation": "説明書", "footer_source_code": "ソースコード", "footer_original_source_code": "元のソースコード", - "footer_modfied_source_code": "改変し使用中", + "footer_modified_source_code": "改変し使用中", "adminprefs_modified_source_code_url_label": "改変されたソースコードのレポジトリの URL", "search_filters_duration_option_long": "20分以上", "preferences_region_label": "地域: ", diff --git a/locales/ko.json b/locales/ko.json index 0224955f..ff134026 100644 --- a/locales/ko.json +++ b/locales/ko.json @@ -371,7 +371,7 @@ "footer_documentation": "문서", "footer_source_code": "소스 코드", "footer_original_source_code": "원본 소스 코드", - "footer_modfied_source_code": "수정된 소스 코드", + "footer_modified_source_code": "수정된 소스 코드", "adminprefs_modified_source_code_url_label": "수정된 소스 코드 저장소의 URL", "search_filters_title": "필터", "preferences_quality_dash_option_4320p": "4320p", diff --git a/locales/lt.json b/locales/lt.json index 740be7b6..00b18513 100644 --- a/locales/lt.json +++ b/locales/lt.json @@ -356,7 +356,7 @@ "footer_source_code": "Pirminis kodas", "footer_original_source_code": "Pradinis pirminis kodas", "adminprefs_modified_source_code_url_label": "URL į pakeisto pirminio kodo repozitoriją", - "footer_modfied_source_code": "Pakeistas pirminis kodas", + "footer_modified_source_code": "Pakeistas pirminis kodas", "footer_donate_page": "Paaukoti", "preferences_region_label": "Turinio šalis: ", "preferences_quality_dash_label": "Pageidaujama DASH vaizdo kokybė: ", diff --git a/locales/nb-NO.json b/locales/nb-NO.json index 38402fed..34b160c9 100644 --- a/locales/nb-NO.json +++ b/locales/nb-NO.json @@ -356,7 +356,7 @@ "footer_documentation": "Dokumentasjon", "footer_source_code": "Kildekode", "footer_original_source_code": "Opprinnelig kildekode", - "footer_modfied_source_code": "Endret kildekode", + "footer_modified_source_code": "Endret kildekode", "adminprefs_modified_source_code_url_label": "Nettadresse til kodelager inneholdende endret kildekode", "preferences_quality_dash_label": "Foretrukket DASH-videokvalitet: ", "preferences_region_label": "Innholdsland: ", diff --git a/locales/nl.json b/locales/nl.json index e9ce7674..1f2452bf 100644 --- a/locales/nl.json +++ b/locales/nl.json @@ -355,7 +355,7 @@ "footer_donate_page": "Doneren", "footer_documentation": "Documentatie", "footer_original_source_code": "Originele bron-code", - "footer_modfied_source_code": "Gewijzigde bron-code", + "footer_modified_source_code": "Gewijzigde bron-code", "adminprefs_modified_source_code_url_label": "URL naar gewijzigde bron-code-opslagplaats", "next_steps_error_message": "Waarna u zou kunnen proberen om: ", "footer_source_code": "Bron-code", diff --git a/locales/pl.json b/locales/pl.json index d78b7a95..d6d48bd9 100644 --- a/locales/pl.json +++ b/locales/pl.json @@ -442,7 +442,7 @@ "search_filters_duration_option_long": "Długa (> 20 minut)", "footer_documentation": "Dokumentacja", "footer_source_code": "Kod źródłowy", - "footer_modfied_source_code": "Zmodyfikowany kod źródłowy", + "footer_modified_source_code": "Zmodyfikowany kod źródłowy", "footer_original_source_code": "Oryginalny kod źródłowy", "adminprefs_modified_source_code_url_label": "Adres URL do repozytorium ze zmodyfikowanym kodem źródłowym", "English (United Kingdom)": "angielski (Wielka Brytania)", diff --git a/locales/pt-BR.json b/locales/pt-BR.json index 1eb3c989..012bfa77 100644 --- a/locales/pt-BR.json +++ b/locales/pt-BR.json @@ -381,7 +381,7 @@ "footer_documentation": "Documentação", "footer_source_code": "Código-fonte", "footer_original_source_code": "Código-fonte original", - "footer_modfied_source_code": "Código-fonte modificado", + "footer_modified_source_code": "Código-fonte modificado", "preferences_quality_dash_label": "Qualidade de vídeo DASH preferida: ", "preferences_region_label": "País do conteúdo: ", "preferences_quality_dash_option_4320p": "4320p", diff --git a/locales/pt-PT.json b/locales/pt-PT.json index 449bde77..5a3e4ab2 100644 --- a/locales/pt-PT.json +++ b/locales/pt-PT.json @@ -465,7 +465,7 @@ "footer_documentation": "Documentação", "footer_source_code": "Código-fonte", "footer_original_source_code": "Código-fonte original", - "footer_modfied_source_code": "Código-fonte alterado", + "footer_modified_source_code": "Código-fonte alterado", "Chinese": "Chinês", "search_filters_date_label": "Data de publicação", "search_filters_date_option_none": "Qualquer data", diff --git a/locales/pt.json b/locales/pt.json index 6438e15b..297ed3ce 100644 --- a/locales/pt.json +++ b/locales/pt.json @@ -380,7 +380,7 @@ "footer_original_source_code": "Código-fonte original", "adminprefs_modified_source_code_url_label": "URL do repositório do código-fonte alterado", "footer_documentation": "Documentação", - "footer_modfied_source_code": "Código-fonte alterado", + "footer_modified_source_code": "Código-fonte alterado", "footer_donate_page": "Doar", "preferences_region_label": "País do conteúdo: ", "preferences_quality_dash_label": "Qualidade de vídeo DASH preferida: ", diff --git a/locales/ro.json b/locales/ro.json index ccbeef63..525e53a0 100644 --- a/locales/ro.json +++ b/locales/ro.json @@ -346,7 +346,7 @@ "Vietnamese (auto-generated)": "Vietnameză (generată automat)", "videoinfo_started_streaming_x_ago": "În direct de acum `x`", "preferences_quality_dash_option_2160p": "2160p", - "footer_modfied_source_code": "Codul sursă modificat", + "footer_modified_source_code": "Codul sursă modificat", "preferences_quality_dash_label": "Calitatea video DASH preferată: ", "generic_videos_count_0": "{{count}} videoclip", "generic_videos_count_1": "{{count}} videoclipuri", diff --git a/locales/ru.json b/locales/ru.json index 906f00fc..ff9ba410 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -446,7 +446,7 @@ "Portuguese (Brazil)": "Португальский (Бразилия)", "footer_source_code": "Исходный код", "footer_original_source_code": "Оригинальный исходный код", - "footer_modfied_source_code": "Изменённый исходный код", + "footer_modified_source_code": "Изменённый исходный код", "user_saved_playlists": "`x` сохранённых плейлистов", "crash_page_search_issue": "поискали похожую проблему на GitHub", "comments_points_count_0": "{{count}} плюс", diff --git a/locales/sl.json b/locales/sl.json index c36ad522..b319ef88 100644 --- a/locales/sl.json +++ b/locales/sl.json @@ -484,7 +484,7 @@ "next_steps_error_message": "Po tem moraš poskusiti: ", "next_steps_error_message_go_to_youtube": "Pojdi na YouTube", "footer_source_code": "Izvorna koda", - "footer_modfied_source_code": "Spremenjena izvorna koda", + "footer_modified_source_code": "Spremenjena izvorna koda", "user_created_playlists": "`x` ustvarjenih seznamov predvajanja", "adminprefs_modified_source_code_url_label": "URL do shrambe spremenjene izvorne kode", "videoinfo_youTube_embed_link": "Vdelaj", diff --git a/locales/sq.json b/locales/sq.json index cdf4b605..d286e2f3 100644 --- a/locales/sq.json +++ b/locales/sq.json @@ -279,7 +279,7 @@ "search_filters_type_option_show": "Shfaqe", "search_filters_duration_option_short": "E shkurtër (< 4 minuta)", "search_filters_features_option_purchased": "Të blera", - "footer_modfied_source_code": "Kod burim i ndryshuar", + "footer_modified_source_code": "Kod burim i ndryshuar", "adminprefs_modified_source_code_url_label": "URL e depos së ndryshuar të kodit burim", "none": "asnjë", "videoinfo_started_streaming_x_ago": "Filloi transmetimin `x` më parë", diff --git a/locales/sr.json b/locales/sr.json index c6614ba5..5dd4a0a7 100644 --- a/locales/sr.json +++ b/locales/sr.json @@ -308,7 +308,7 @@ "Haitian Creole": "Haićanski Kreolski", "Somali": "Somalijski", "Top": "Top", - "footer_modfied_source_code": "Izmenjeni izvorni kôd", + "footer_modified_source_code": "Izmenjeni izvorni kôd", "preferences_category_subscription": "Podešavanja praćenja", "preferences_annotations_subscribed_label": "Podrazumevano prikazati napomene za kanale koje pratite? ", "preferences_max_results_label": "Broj video snimaka prikazanih u fidu: ", diff --git a/locales/sr_Cyrl.json b/locales/sr_Cyrl.json index e6ab0f35..1f22fdaa 100644 --- a/locales/sr_Cyrl.json +++ b/locales/sr_Cyrl.json @@ -186,7 +186,7 @@ "next_steps_error_message": "Након тога би требало да покушате да: ", "footer_donate_page": "Донирај", "footer_documentation": "Документација", - "footer_modfied_source_code": "Измењени изворни кôд", + "footer_modified_source_code": "Измењени изворни кôд", "preferences_region_label": "Држава садржаја: ", "preferences_category_misc": "Остала подешавања", "User ID is a required field": "ID корисника је обавезно поље", diff --git a/locales/sv-SE.json b/locales/sv-SE.json index 8f050d98..9b6c60a8 100644 --- a/locales/sv-SE.json +++ b/locales/sv-SE.json @@ -450,7 +450,7 @@ "generic_count_weeks_plural": "{{count}}veckor", "videoinfo_watch_on_youTube": "Titta på YouTube", "Music in this video": "Musik i denna video", - "footer_modfied_source_code": "Modifierad källkod", + "footer_modified_source_code": "Modifierad källkod", "generic_button_rss": "RSS", "preferences_quality_dash_option_4320p": "4320p", "generic_count_hours": "{{count}}timme", diff --git a/locales/ta.json b/locales/ta.json index 89e58668..9b111269 100644 --- a/locales/ta.json +++ b/locales/ta.json @@ -251,7 +251,7 @@ "next_steps_error_message_refresh": "புதுப்பிப்பு", "next_steps_error_message_go_to_youtube": "YouTube க்குச் செல்லுங்கள்", "footer_donate_page": "நன்கொடை", - "footer_modfied_source_code": "மாற்றியமைக்கப்பட்ட மூலக் குறியீடு", + "footer_modified_source_code": "மாற்றியமைக்கப்பட்ட மூலக் குறியீடு", "adminprefs_modified_source_code_url_label": "மாற்றியமைக்கப்பட்ட மூலக் குறியீடு களஞ்சியத்திற்கு முகவரி", "videoinfo_started_streaming_x_ago": "`X` முன்பு ச்ட்ரீமிங் செய்யத் தொடங்கியது", "videoinfo_watch_on_youTube": "YouTube இல் பாருங்கள்", diff --git a/locales/tr.json b/locales/tr.json index cf3f8987..62a3720a 100644 --- a/locales/tr.json +++ b/locales/tr.json @@ -355,7 +355,7 @@ "footer_documentation": "Belgelendirme", "footer_source_code": "Kaynak Kodları", "footer_original_source_code": "Orijinal Kaynak Kodları", - "footer_modfied_source_code": "Değiştirilmiş kaynak kodları", + "footer_modified_source_code": "Değiştirilmiş kaynak kodları", "adminprefs_modified_source_code_url_label": "Değiştirilmiş Kaynak Kodları Deposunun URL'si", "footer_donate_page": "Bağış Yap", "preferences_region_label": "İçerik Ülkesi: ", diff --git a/locales/uk.json b/locales/uk.json index b99923e2..be4eec1c 100644 --- a/locales/uk.json +++ b/locales/uk.json @@ -382,7 +382,7 @@ "footer_documentation": "Документація", "footer_source_code": "Джерельний код", "footer_original_source_code": "Оригінал джерельного коду", - "footer_modfied_source_code": "Змінений джерельний код", + "footer_modified_source_code": "Змінений джерельний код", "adminprefs_modified_source_code_url_label": "URL-адреса репозиторію зміненого джерельного коду", "none": "нема", "videoinfo_started_streaming_x_ago": "Трансляцію розпочато `x` тому", diff --git a/locales/vi.json b/locales/vi.json index 9c4a5a15..017204a7 100644 --- a/locales/vi.json +++ b/locales/vi.json @@ -446,7 +446,7 @@ "crash_page_switch_instance": "Đã thử dùng một phiên bản khác", "generic_count_weeks_0": "{{count}} tuần", "videoinfo_watch_on_youTube": "Xem trên YouTube", - "footer_modfied_source_code": "Mã nguồn đã chỉnh sửa", + "footer_modified_source_code": "Mã nguồn đã chỉnh sửa", "generic_button_rss": "RSS", "generic_count_hours_0": "{{count}} giờ", "French (auto-generated)": "Tiếng Pháp (được tạo tự động)", diff --git a/locales/zh-CN.json b/locales/zh-CN.json index f3bc660b..3e3d098c 100644 --- a/locales/zh-CN.json +++ b/locales/zh-CN.json @@ -370,7 +370,7 @@ "search_filters_duration_option_long": "长(多于 20 分钟)", "footer_documentation": "文档", "footer_source_code": "源代码", - "footer_modfied_source_code": "修改的源代码", + "footer_modified_source_code": "修改的源代码", "adminprefs_modified_source_code_url_label": "更改的源代码仓库网址", "footer_original_source_code": "原始源代码", "footer_donate_page": "捐赠", diff --git a/locales/zh-TW.json b/locales/zh-TW.json index 77805349..a531d8b4 100644 --- a/locales/zh-TW.json +++ b/locales/zh-TW.json @@ -371,7 +371,7 @@ "footer_documentation": "文件", "footer_source_code": "原始碼", "footer_original_source_code": "原本的原始碼", - "footer_modfied_source_code": "修改後的原始碼", + "footer_modified_source_code": "修改後的原始碼", "adminprefs_modified_source_code_url_label": "修改後的原始碼倉庫 URL", "footer_donate_page": "捐款", "preferences_region_label": "內容國家: ", diff --git a/scripts/deploy-database.sh b/scripts/deploy-database.sh index fa24b8f0..0b8f18e8 100755 --- a/scripts/deploy-database.sh +++ b/scripts/deploy-database.sh @@ -18,7 +18,7 @@ sudo systemctl start postgresql.service sudo systemctl enable postgresql.service # -# Create databse and user +# Create database and user # if [ "$interactive" = "true" ]; then @@ -51,7 +51,7 @@ if [ "$interactive" = "true" ]; then echo " NOTICE " echo "-------------" echo - echo "Make sure that your postgreSQL's pg_hba.conf file contains the follwong" + echo "Make sure that your postgreSQL's pg_hba.conf file contains the following" echo "lines before previous 'host' configurations:" echo echo "host invidious kemal 127.0.0.1/32 md5" diff --git a/spec/invidious/search/query_spec.cr b/spec/invidious/search/query_spec.cr index 063b69f1..25c9a8fe 100644 --- a/spec/invidious/search/query_spec.cr +++ b/spec/invidious/search/query_spec.cr @@ -15,7 +15,7 @@ Spectator.describe Invidious::Search::Query do # Query parsing # ------------------- - it "parses query with URL prameters (q)" do + it "parses query with URL parameters (q)" do query = described_class.new( HTTP::Params.parse("q=What+is+Love+10+hour&type=video&duration=long"), Invidious::Search::Query::Type::Regular, nil @@ -33,7 +33,7 @@ Spectator.describe Invidious::Search::Query do ) end - it "parses query with URL prameters (search_query)" do + it "parses query with URL parameters (search_query)" do query = described_class.new( HTTP::Params.parse("search_query=What+is+Love+10+hour&type=video&duration=long"), Invidious::Search::Query::Type::Regular, nil diff --git a/src/invidious/comments/content.cr b/src/invidious/comments/content.cr index 1f55bfe6..00df8f73 100644 --- a/src/invidious/comments/content.cr +++ b/src/invidious/comments/content.cr @@ -15,14 +15,14 @@ def text_to_parsed_content(text : String) : JSON::Any line.scan(/https?:\/\/[^ ]*/).each do |url_match| # Retrieve last node and update node without match last_node = current_nodes[-1].as_h - splitted_last_node = last_node["text"].as_s.split(url_match[0]) - last_node["text"] = JSON.parse(splitted_last_node[0].to_json) + split_last_node = last_node["text"].as_s.split(url_match[0]) + last_node["text"] = JSON.parse(split_last_node[0].to_json) current_nodes[-1] = JSON.parse(last_node.to_json) # Create new node with match and navigation infos current_node = {"text" => url_match[0], "navigationEndpoint" => {"urlEndpoint" => {"url" => url_match[0]}}} current_nodes << (JSON.parse(current_node.to_json)) # If text remain after match create new simple node with text after match - after_node = {"text" => splitted_last_node.size > 1 ? splitted_last_node[1] : ""} + after_node = {"text" => split_last_node.size > 1 ? split_last_node[1] : ""} current_nodes << (JSON.parse(after_node.to_json)) end diff --git a/src/invidious/comments/youtube.cr b/src/invidious/comments/youtube.cr index 0716fcde..168df063 100644 --- a/src/invidious/comments/youtube.cr +++ b/src/invidious/comments/youtube.cr @@ -134,7 +134,7 @@ module Invidious::Comments end if cvm = node["commentViewModel"]? - # two commentViewModels for inital request + # two commentViewModels for initial request # one commentViewModel when getting a replies to a comment cvm = cvm["commentViewModel"] if cvm["commentViewModel"]? diff --git a/src/invidious/database/channels.cr b/src/invidious/database/channels.cr index df44e485..0902e393 100644 --- a/src/invidious/database/channels.cr +++ b/src/invidious/database/channels.cr @@ -133,7 +133,7 @@ module Invidious::Database::ChannelVideos return PG_DB.query_all(request, ids, as: ChannelVideo) end - def select_notfications(ucid : String, since : Time) : Array(ChannelVideo) + def select_notifications(ucid : String, since : Time) : Array(ChannelVideo) request = <<-SQL SELECT * FROM channel_videos WHERE ucid = $1 AND published > $2 diff --git a/src/invidious/exceptions.cr b/src/invidious/exceptions.cr index 690db907..b90e2974 100644 --- a/src/invidious/exceptions.cr +++ b/src/invidious/exceptions.cr @@ -35,6 +35,6 @@ class VideoNotAvailableException < Exception end # Exception used to indicate that the JSON response from YT is missing -# some important informations, and that the query should be sent again. +# some important information, and that the query should be sent again. class RetryOnceException < Exception end diff --git a/src/invidious/frontend/search_filters.cr b/src/invidious/frontend/search_filters.cr index 8ac0af2e..c98e70df 100644 --- a/src/invidious/frontend/search_filters.cr +++ b/src/invidious/frontend/search_filters.cr @@ -1,7 +1,7 @@ module Invidious::Frontend::SearchFilters extend self - # Generate the search filters collapsable widget. + # Generate the search filters collapsible widget. def generate(filters : Search::Filters, query : String, page : Int, locale : String) : String return String.build(8000) do |str| str << "
\n" diff --git a/src/invidious/helpers/crystal_class_overrides.cr b/src/invidious/helpers/crystal_class_overrides.cr index fec3f62c..792c0a0e 100644 --- a/src/invidious/helpers/crystal_class_overrides.cr +++ b/src/invidious/helpers/crystal_class_overrides.cr @@ -49,7 +49,7 @@ class HTTP::Client end # Mute the ClientError exception raised when a connection is flushed. -# This happends when the connection is unexpectedly closed by the client. +# This happens when the connection is unexpectedly closed by the client. # class HTTP::Server::Response class Output diff --git a/src/invidious/helpers/helpers.cr b/src/invidious/helpers/helpers.cr index 6add0237..e026889c 100644 --- a/src/invidious/helpers/helpers.cr +++ b/src/invidious/helpers/helpers.cr @@ -101,7 +101,7 @@ def create_notification_stream(env, topics, connection_channel) topics.try &.each do |topic| case topic when .match(/UC[A-Za-z0-9_-]{22}/) - Invidious::Database::ChannelVideos.select_notfications(topic, since_unix).each do |video| + Invidious::Database::ChannelVideos.select_notifications(topic, since_unix).each do |video| response = JSON.parse(video.to_json(locale)) env.response.puts "id: #{id}" diff --git a/src/invidious/jobs.cr b/src/invidious/jobs.cr index b6b673f7..7f9845b0 100644 --- a/src/invidious/jobs.cr +++ b/src/invidious/jobs.cr @@ -31,7 +31,7 @@ module Invidious::Jobs def self.start_all JOBS.each do |job| - # Don't run the main rountine if the job is disabled by config + # Don't run the main routine if the job is disabled by config next if job.disabled? spawn { job.begin } diff --git a/src/invidious/routes/api/manifest.cr b/src/invidious/routes/api/manifest.cr index c27caad7..3a02993c 100644 --- a/src/invidious/routes/api/manifest.cr +++ b/src/invidious/routes/api/manifest.cr @@ -33,7 +33,7 @@ module Invidious::Routes::API::Manifest end # Proxy URLs for video playback on invidious. - # Other API clients can get the original URLs by omiting `local=true`. + # Other API clients can get the original URLs by omitting `local=true`. manifest = response.body.gsub(/[^<]+<\/BaseURL>/) do |baseurl| url = baseurl.lchop("").rchop("") url = HttpServer::Utils.proxy_video_url(url, absolute: true) if local @@ -74,7 +74,7 @@ module Invidious::Routes::API::Manifest displayname = audio_track["displayName"]?.try &.as_s || "Unknown" bitrate = fmt["bitrate"] - # Different representations of the same audio should be groupped into one AdaptationSet. + # Different representations of the same audio should be grouped into one AdaptationSet. # However, most players don't support auto quality switching, so we have to trick them # into providing a quality selector. # See https://github.com/iv-org/invidious/issues/3074 for more details. diff --git a/src/invidious/search/filters.cr b/src/invidious/search/filters.cr index bc2715cf..436c67f6 100644 --- a/src/invidious/search/filters.cr +++ b/src/invidious/search/filters.cr @@ -317,7 +317,7 @@ module Invidious::Search # Initialize output variable filters = Filters.new - # Get parameter, and check emptyness + # Get parameter, and check emptiness search_params = params["sp"]? if search_params.nil? || search_params.empty? diff --git a/src/invidious/views/template.ecr b/src/invidious/views/template.ecr index 9904b4fc..9cb8c353 100644 --- a/src/invidious/views/template.ecr +++ b/src/invidious/views/template.ecr @@ -119,7 +119,7 @@ <% if CONFIG.modified_source_code_url %> <%= translate(locale, "footer_original_source_code") %> / - <%= translate(locale, "footer_modfied_source_code") %> + <%= translate(locale, "footer_modified_source_code") %> <% else %> <%= translate(locale, "footer_source_code") %> <% end %> diff --git a/src/invidious/yt_backend/extractors.cr b/src/invidious/yt_backend/extractors.cr index 85f6caa5..f9853d32 100644 --- a/src/invidious/yt_backend/extractors.cr +++ b/src/invidious/yt_backend/extractors.cr @@ -770,8 +770,8 @@ private module Parsers # # continuationItemRenderer contains various metadata ued to load more # content (i.e when the user scrolls down). The interesting bit is the - # protobuf object known as the "continutation token". Previously, those - # were generated from sratch, but recent (as of 11/2022) Youtube changes + # protobuf object known as the "continuation token". Previously, those + # were generated from scratch, but recent (as of 11/2022) Youtube changes # are forcing us to extract them from replies. # module ContinuationItemRendererParser