Merge branch 'master' of github.com:iv-org/invidious

このコミットが含まれているのは:
テクニカル諏訪子 2022-02-23 19:05:30 +09:00
コミット 794470b2f8
10個のファイルの変更192行の追加51行の削除

ファイルの表示

@ -89,28 +89,28 @@ distclean: clean
# -----------------------
help:
echo "Targets available in this Makefile:"
echo ""
echo "get-libs Fetch Crystal libraries"
echo "invidious Build Invidious"
echo "run Launch Invidious"
echo ""
echo "format Run the Crystal formatter"
echo "test Run tests"
echo "verify Just make sure that the code compiles, but without"
echo " generating any binaries. Useful to search for errors"
echo ""
echo "clean Remove build artifacts"
echo "distclean Remove build artifacts and libraries"
echo ""
echo ""
echo "Build options available for this Makefile:"
echo ""
echo "RELEASE Make a release build (Default: 1)"
echo "STATIC Link libraries statically (Default: 0)"
echo ""
echo "DISABLE_QUIC Disable support for QUIC (Default: 0)"
echo "NO_DBG_SYMBOLS Strip debug symbols (Default: 0)"
@echo "Targets available in this Makefile:"
@echo ""
@echo " get-libs Fetch Crystal libraries"
@echo " invidious Build Invidious"
@echo " run Launch Invidious"
@echo ""
@echo " format Run the Crystal formatter"
@echo " test Run tests"
@echo " verify Just make sure that the code compiles, but without"
@echo " generating any binaries. Useful to search for errors"
@echo ""
@echo " clean Remove build artifacts"
@echo " distclean Remove build artifacts and libraries"
@echo ""
@echo ""
@echo "Build options available for this Makefile:"
@echo ""
@echo " RELEASE Make a release build (Default: 1)"
@echo " STATIC Link libraries statically (Default: 0)"
@echo ""
@echo " DISABLE_QUIC Disable support for QUIC (Default: 0)"
@echo " NO_DBG_SYMBOLS Strip debug symbols (Default: 0)"

ファイルの表示

@ -35,21 +35,11 @@ if (player_data.aspect_ratio) {
var embed_url = new URL(location);
embed_url.searchParams.delete('v');
short_url = location.origin + '/' + video_data.id + embed_url.search;
var short_url = location.origin + '/' + video_data.id + embed_url.search;
embed_url = location.origin + '/embed/' + video_data.id + embed_url.search;
var save_player_pos_key = "save_player_pos";
var shareOptions = {
socials: ['fbFeed', 'tw', 'reddit', 'email'],
url: short_url,
title: player_data.title,
description: player_data.description,
image: player_data.thumbnail,
embedCode: "<iframe id='ivplayer' width='640' height='360' src='" + embed_url + "' style='border:none;'></iframe>"
}
videojs.Vhs.xhr.beforeRequest = function(options) {
if (options.uri.indexOf('videoplayback') === -1 && options.uri.indexOf('local=true') === -1) {
options.uri = options.uri + '?local=true';
@ -59,6 +49,37 @@ videojs.Vhs.xhr.beforeRequest = function(options) {
var player = videojs('player', options);
/**
* Function for add time argument to url
* @param {String} url
* @returns urlWithTimeArg
*/
function addCurrentTimeToURL(url) {
var urlUsed = new URL(url);
urlUsed.searchParams.delete('start');
var currentTime = Math.ceil(player.currentTime());
if (currentTime > 0)
urlUsed.searchParams.set('t', currentTime);
else if (urlUsed.searchParams.has('t'))
urlUsed.searchParams.delete('t');
return urlUsed;
}
var shareOptions = {
socials: ['fbFeed', 'tw', 'reddit', 'email'],
get url() {
return addCurrentTimeToURL(short_url);
},
title: player_data.title,
description: player_data.description,
image: player_data.thumbnail,
get embedCode() {
return "<iframe id='ivplayer' width='640' height='360' src='" +
addCurrentTimeToURL(embed_url) + "' style='border:none;'></iframe>";
}
};
const storage = (() => {
try { if (localStorage.length !== -1) return localStorage; }
catch (e) { console.info('No storage available: ' + e); }

ファイルの表示

@ -21,15 +21,15 @@
"No": "Όχι",
"Import and Export Data": "Εισαγωγή και Εξαγωγή Δεδομένων",
"Import": "Εισαγωγή",
"Import Invidious data": "Εισαγωγή δεδομένων Invidious",
"Import YouTube subscriptions": "Εισαγωγή συνδρομών YouTube",
"Import Invidious data": "Εsαγωγή δεδομένων Invidious JSON",
"Import YouTube subscriptions": "Εισαγωγή συνδρομών YouTube/OPML",
"Import FreeTube subscriptions (.db)": "Εισαγωγή συνδρομών FreeTube (.db)",
"Import NewPipe subscriptions (.json)": "Εισαγωγή συνδρομών NewPipe (.json)",
"Import NewPipe data (.zip)": "Εισαγωγή δεδομένων NewPipe (.zip)",
"Export": "Εξαγωγή",
"Export subscriptions as OPML": "Εξαγωγή συνδρομών ως OPML",
"Export subscriptions as OPML (for NewPipe & FreeTube)": "Εξαγωγή συνδρομών ως OPML (για NewPipe & FreeTube)",
"Export data as JSON": "Εξαγωγή δεδομένων ως JSON",
"Export data as JSON": "Εξαγωγή δεδομένων Invidious ως JSON",
"Delete account?": "Διαγραφή λογαριασμού;",
"History": "Ιστορικό",
"An alternative front-end to YouTube": "Μία εναλλακτική πλατφόρμα για το YouTube",
@ -419,7 +419,34 @@
"Search": "Αναζήτηση",
"hdr": "HDR",
"preferences_extend_desc_label": "Αυτόματη επέκταση της περιγραφής του βίντεο: ",
"preferences_vr_mode_label": "Διαδραστικά βίντεο 360 μοιρών: ",
"preferences_vr_mode_label": "Διαδραστικά βίντεο 360 μοιρών (απαιτεί WebGL): ",
"Show less": "Εμφάνιση λιγότερων",
"footer_source_code": "Πηγαίος κώδικας"
"footer_source_code": "Πηγαίος κώδικας",
"Chinese (Taiwan)": "Κινέζικα (Ταϊβάν)",
"Portuguese (Brazil)": "Πορτογαλικά (Βραζιλία)",
"German (auto-generated)": "Γερμανικά (αυτόματη παραγωγή)",
"Korean (auto-generated)": "Κορεάτικα (αυτόματη παραγωγή)",
"Russian (auto-generated)": "Ρωσικά (αυτόματη παραγωγή)",
"Spanish (auto-generated)": "Ισπανικά (αυτόματη παραγωγή)",
"Vietnamese (auto-generated)": "Βιετναμέζικα (αυτόματη παραγωγή)",
"English (United Kingdom)": "Αγγλικά (Ηνωμένο Βασίλειο)",
"English (United States)": "Αγγλικά (Ηνωμένων Πολιτειών)",
"Cantonese (Hong Kong)": "Καντονέζικα (Χονγκ Κονγκ)",
"Chinese": "Κινεζικά",
"Chinese (China)": "Κινέζικα (Κίνα)",
"Chinese (Hong Kong)": "Κινεζικά (Χονγκ Κονγκ)",
"Dutch (auto-generated)": "Ολαμδικά (αυτόματη παραγωγή)",
"French (auto-generated)": "Γαλλικά (αυτόματη παραγωγή)",
"Interlingue": "Ιντερλίνγκουα",
"Indonesian (auto-generated)": "Ινδονησιακά (αυτόματη παραγωγή)",
"Italian (auto-generated)": "Ιταλικά (αυτόματη παραγωγή)",
"Japanese (auto-generated)": "Ιαπωνικά (αυτόματη παραγωγή)",
"Portuguese (auto-generated)": "Πορτογαλικά (αυτόματη παραγωγή)",
"Spanish (Mexico)": "Ισπανικά (Μεξικό)",
"Spanish (Spain)": "Ισπανικά (Ισπανία)",
"Turkish (auto-generated)": "Τούρκικα (αυτόματη παραγωγή)",
"none": "κανένα",
"videoinfo_youTube_embed_link": "Ενσωμάτωση",
"videoinfo_invidious_embed_link": "Σύνδεσμος Ενσωμάτωσης",
"show": "Μπάρα προόδου διαβάσματος"
}

ファイルの表示

@ -31,8 +31,8 @@
"No": "Non",
"Import and Export Data": "Importer et exporter des données",
"Import": "Importer",
"Import Invidious data": "Importer des données Invidious",
"Import YouTube subscriptions": "Importer des abonnements YouTube",
"Import Invidious data": "Importer des données Invidious au format JSON",
"Import YouTube subscriptions": "Importer des abonnements YouTube/OPML",
"Import FreeTube subscriptions (.db)": "Importer des abonnements FreeTube (.db)",
"Import NewPipe subscriptions (.json)": "Importer des abonnements NewPipe (.json)",
"Import NewPipe data (.zip)": "Importer des données NewPipe (.zip)",

ファイルの表示

@ -21,15 +21,15 @@
"No": "Ne",
"Import and Export Data": "Uvezi i izvezi podatke",
"Import": "Uvezi",
"Import Invidious data": "Uvezi Invidious podatke",
"Import YouTube subscriptions": "Uvezi YouTube pretplate",
"Import Invidious data": "Uvezi Invidious JSON podatke",
"Import YouTube subscriptions": "Uvezi YouTube/OPML pretplate",
"Import FreeTube subscriptions (.db)": "Uvezi FreeTube pretplate (.db)",
"Import NewPipe subscriptions (.json)": "Uvezi NewPipe pretplate (.json)",
"Import NewPipe data (.zip)": "Uvezi NewPipe podatke (.zip)",
"Export": "Izvezi",
"Export subscriptions as OPML": "Izvezi pretplate kao OPML",
"Export subscriptions as OPML (for NewPipe & FreeTube)": "Izvezi pretplate kao OPML (za NewPipe i FreeTube)",
"Export data as JSON": "Izvezi podatke kao JSON",
"Export data as JSON": "Izvezi Invidious podatke kao JSON",
"Delete account?": "Izbrisati račun?",
"History": "Povijest",
"An alternative front-end to YouTube": "Alternativa za YouTube",
@ -66,7 +66,7 @@
"preferences_related_videos_label": "Prikaži povezana videa: ",
"preferences_annotations_label": "Standardno prikaži napomene: ",
"preferences_extend_desc_label": "Automatski proširi opis videa: ",
"preferences_vr_mode_label": "Interaktivna videa od 360 stupnjeva: ",
"preferences_vr_mode_label": "Interaktivna videa od 360 stupnjeva (zahtijeva WebGL): ",
"preferences_category_visual": "Postavke prikaza",
"preferences_player_style_label": "Stil playera: ",
"Dark mode: ": "Tamni modus: ",
@ -453,5 +453,28 @@
"crash_page_switch_instance": "pokušaj <a href=\"`x`\">koristiti jednu drugu instancu</a>",
"crash_page_read_the_faq": "pročitaj <a href=\"`x`\">Često postavljena pitanja (ČPP)</a>",
"crash_page_search_issue": "pretraži <a href=\"`x`\">postojeće probleme na Github-u</a>",
"crash_page_report_issue": "Ako ništa od gore navedenog ne pomaže, <a href=\"`x`\">prijavi novi problem na GitHub-u</a> (po mogućnosti na engleskom) i uključi sljedeći tekst u poruku (NEMOJ prevoditi taj tekst):"
"crash_page_report_issue": "Ako ništa od gore navedenog ne pomaže, <a href=\"`x`\">prijavi novi problem na GitHub-u</a> (po mogućnosti na engleskom) i uključi sljedeći tekst u poruku (NEMOJ prevoditi taj tekst):",
"English (United Kingdom)": "Engleski (Ujedinjeno Kraljevstvo)",
"English (United States)": "Engleski (Sjedinjene Američke Države)",
"Cantonese (Hong Kong)": "Kantonski (Hong Kong)",
"Chinese": "Kineski",
"Chinese (Taiwan)": "Kineski (Tajvan)",
"Dutch (auto-generated)": "Nizozemski (automatski generiran)",
"French (auto-generated)": "Francuski (automatski generiran)",
"Indonesian (auto-generated)": "Indonezijski (automatski generiran)",
"Interlingue": "Interlingua",
"Japanese (auto-generated)": "Japanski (automatski generiran)",
"Russian (auto-generated)": "Ruski (automatski generiran)",
"Turkish (auto-generated)": "Turski (automatski generiran)",
"Vietnamese (auto-generated)": "Vijetnamski (automatski generiran)",
"Spanish (Spain)": "Španjolski (Španjolska)",
"Italian (auto-generated)": "Talijanski (automatski generiran)",
"Portuguese (Brazil)": "Portugalski (Brazil)",
"Spanish (Mexico)": "Španjolski (Meksiko)",
"German (auto-generated)": "Njemački (automatski generiran)",
"Chinese (China)": "Kineski (Kina)",
"Chinese (Hong Kong)": "Kineski (Hong Kong)",
"Korean (auto-generated)": "Korejski (automatski generiran)",
"Portuguese (auto-generated)": "Portugalski (automatski generiran)",
"Spanish (auto-generated)": "Španjolski (automatski generiran)"
}

ファイルの表示

@ -374,7 +374,7 @@
"German (auto-generated)": "Немецкий (автоматический)",
"Indonesian (auto-generated)": "Индонезийский (автоматический)",
"Italian (auto-generated)": "Итальянский (автоматический)",
"Interlingue": "Интерлингва",
"Interlingue": "Окциденталь",
"Russian (auto-generated)": "Русский (автоматический)",
"Spanish (auto-generated)": "Испанский (автоматический)",
"Spanish (Spain)": "Испанский (Испания)",

ファイルの表示

@ -379,5 +379,74 @@
"footer_donate_page": "Dhuroni",
"footer_documentation": "Dokumentim",
"footer_source_code": "Kod burim",
"footer_original_source_code": "Kodim burim origjinal"
"footer_original_source_code": "Kodim burim origjinal",
"generic_count_hours": "{{count}} orë",
"generic_count_hours_plural": "{{count}} orë",
"generic_videos_count": "{{count}} video",
"generic_videos_count_plural": "{{count}} video",
"generic_playlists_count": "{{count}} luajlistë",
"generic_playlists_count_plural": "{{count}} luajlista",
"generic_subscribers_count": "{{count}} pajtimtar",
"generic_subscribers_count_plural": "{{count}} pajtimtarë",
"subscriptions_unseen_notifs_count": "{{count}} njoftim që sështë parë",
"subscriptions_unseen_notifs_count_plural": "{{count}} njoftime që sjanë parë",
"comments_view_x_replies": "Shihni {{count}} përgjigje",
"comments_view_x_replies_plural": "Shihni {{count}} përgjigje",
"comments_points_count": "{{count}} pikë",
"comments_points_count_plural": "{{count}} pikë",
"generic_count_years": "{{count}} vit",
"generic_count_years_plural": "{{count}} vjet",
"generic_count_months": "{{count}} muaj",
"generic_count_months_plural": "{{count}} muaj",
"generic_count_weeks": "{{count}} javë",
"generic_count_weeks_plural": "{{count}} javë",
"generic_count_days": "{{count}} ditë",
"generic_count_days_plural": "{{count}} ditë",
"generic_count_minutes": "{{count}} minutë",
"generic_count_minutes_plural": "{{count}} minuta",
"generic_count_seconds": "{{count}} sekondë",
"generic_count_seconds_plural": "{{count}} sekonda",
"crash_page_you_found_a_bug": "Duket sikur gjetët një të metë në Invidious!",
"crash_page_before_reporting": "Para se të njoftoni një të metë, sigurohuni se keni:",
"crash_page_refresh": "provuar të <a href=\"`x`\">rifreskoni faqen</a>",
"crash_page_switch_instance": "provuar të <a href=\"`x`\">përdorni tjetër instancë</a>",
"crash_page_read_the_faq": "lexuar <a href=\"`x`\">Pyetje të Bëra Rëndom (PBR)</a>",
"generic_views_count": "{{count}} parje",
"generic_views_count_plural": "{{count}} parje",
"English (United Kingdom)": "Anglisht (Mbretëri e Bashkuar)",
"English (United States)": "Anglisht (Shtetet e Bashkuara)",
"Cantonese (Hong Kong)": "Kantoneze (Hong Kong)",
"Chinese": "Kinezçe",
"Chinese (China)": "Kinezçe (Kinë)",
"Chinese (Hong Kong)": "Kinezçe (Hong-Kong)",
"Chinese (Taiwan)": "Kinezçe (Tajvan)",
"Dutch (auto-generated)": "Holandisht (e prodhuar automatikisht)",
"French (auto-generated)": "Anglisht (të prodhuara automatikisht)",
"German (auto-generated)": "Gjermanisht (të prodhuara automatikisht)",
"Hmong": "Hmong",
"Indonesian (auto-generated)": "Indonezisht (të prodhuara automatikisht)",
"Interlingue": "Interlingue",
"Italian (auto-generated)": "Italisht (të prodhuara automatikisht)",
"Japanese (auto-generated)": "Japonisht (të prodhuara automatikisht)",
"Korean (auto-generated)": "Koreane (të prodhuara automatikisht)",
"Portuguese (auto-generated)": "Portugalisht (të prodhuara automatikisht)",
"Portuguese (Brazil)": "Portugeze (Brazil)",
"Russian (auto-generated)": "Rusisht (të prodhuara automatikisht)",
"Spanish (auto-generated)": "Spanjisht (të prodhuara automatikisht)",
"Spanish (Mexico)": "Spanjisht (Meksikë)",
"Spanish (Spain)": "Spanjisht (Spanjë)",
"Turkish (auto-generated)": "Turqisht (të prodhuara automatikisht)",
"Vietnamese (auto-generated)": "Vietnamisht (të prodhuara automatikisht)",
"crash_page_search_issue": "kërkuar për <a href=\"`x`\">çështje ekzistuese në Github</a>",
"crash_page_report_issue": "Nëse asnjë nga sa më sipër sndihmoi, ju lutemi, <a href=\"`x`\">hapni një çështje në GitHub</a> (mundësisht në anglisht) dhe përfshini në mesazhin tuaj tekstin vijues (MOS e përktheni këtë tekst):",
"generic_subscriptions_count": "{{count}} pajtim",
"generic_subscriptions_count_plural": "{{count}} pajtime",
"tokens_count": "{{count}} token",
"tokens_count_plural": "{{count}} tokenë",
"preferences_save_player_pos_label": "Mba mend pozicionin e luajtjes: ",
"Import Invidious data": "Importoni të dhëna JSON Invidious",
"Import YouTube subscriptions": "Importoni pajtime YouTube/OPML",
"Export data as JSON": "Eksportoji të dhënat Invidious si JSON",
"preferences_vr_mode_label": "Video me ndërveprim 360 gradë (lyp WebGL): ",
"Shared `x`": "Ndau me të tjerë `x`"
}

ファイルの表示

@ -30,6 +30,7 @@ LOCALES_LIST = {
"pt-PT" => "Português de Portugal", # Portuguese (Portugal)
"ro" => "Română", # Romanian
"ru" => "русский", # Russian
"sq" => "Shqip", # Albanian
"sr" => "srpski (latinica)", # Serbian (Latin)
"sr_Cyrl" => "српски (ћирилица)", # Serbian (Cyrillic)
"sv-SE" => "Svenska", # Swedish

ファイルの表示

@ -4,10 +4,10 @@ module Invidious::Routes::API::V1::Misc
env.response.content_type = "application/json"
if !CONFIG.statistics_enabled
return error_json(400, "Statistics are not enabled.")
return {"software" => SOFTWARE}.to_json
else
return Invidious::Jobs::StatisticsRefreshJob::STATISTICS.to_json
end
Invidious::Jobs::StatisticsRefreshJob::STATISTICS.to_json
end
# APIv1 currently uses the same logic for both

ファイルの表示

@ -136,7 +136,7 @@ module Invidious::Routes::API::V1::Videos
#
# See: https://github.com/iv-org/invidious/issues/2391
webvtt = YT_POOL.client &.get("#{url}&format=vtt").body
.gsub(/([0-9:.]+ --> [0-9:.]+).+/, "\\1")
.gsub(/([0-9:.]{12} --> [0-9:.]{12}).+/, "\\1")
end
if title = env.params.query["title"]?